SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
UML
Versão 1.0.0
Sumário
I Sobre essa Apostila 3
II Informações Básicas 5
III GNU Free Documentation License 10
IV UML 19
1 O que é UML 20
2 Plano de ensino 21
2.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Introdução 24
3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 História . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4 Conceitos Iniciais 26
4.1 Diagramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 Diagramas Estruturais 27
5.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Relacionamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 Diagramas de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 Diagrama de Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.5 Diagrama de Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.6 Diagrama de Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.6.1 Diagrama de Artefatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.6.2 Diagrama de Implantação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
6 Diagramas Comportamentais 33
6.1 Atores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2 Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.3 Diagrama de Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4 Diagrama de Seqüência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.5 Diagrama de Colaboração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.6 Diagrama de Gráfico de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.7 Diagramas de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2
Parte I
Sobre essa Apostila
3
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Conteúdo
O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in-
ternet, disponíveis em diversos sites ou originalmente produzido no CDTC (http://www.cdtc.org.br.)
O formato original deste material bem como sua atualização está disponível dentro da licença
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção de
mesmo nome, tendo inclusive uma versão traduzida (não oficial).
A revisão e alteração vem sendo realizada pelo CDTC (suporte@cdtc.org.br) desde outubro
de 2006. Críticas e sugestões construtivas serão bem-vindas a qualquer hora.
Autores
A autoria deste é de responsabilidade de Beatriz Marília Ferreira Ribeiro (beatriz@cdtc.org.br).
O texto original faz parte do projeto Centro de Difusão de Tecnologia e Conhecimento que
vêm sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informação) em conjunto com
outros parceiros institucionais, e com as universidades federais brasileiras que tem produzido e
utilizado Software Livre apoiando inclusive a comunidade Free Software junto a outras entidades
no país.
Informações adicionais podem ser obtidas através do email ouvidoria@cdtc.org.br, ou da
home page da entidade, através da URL http://www.cdtc.org.br.
Garantias
O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi-
lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizam
direta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido.
Licença
Copyright ©2006, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.br) .
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS-
TILA. A copy of the license is included in the section entitled GNU Free Documentation
License.
4
Parte II
Informações Básicas
5
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Sobre o CDTC
Objetivo Geral
O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina-
ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito do
desenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira.
Objetivo Específico
Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário e
de código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre os
servidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negócio da tecnologia da informação e de novos negócios
de comunicação com base em software não-proprietário e de código fonte aberto, oferecendo
treinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários,
criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar como
incentivadores e defensores dos produtos de software não proprietários e código fonte aberto, ofe-
recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento de
produtos de software não proprietários e do seu código fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro-
dutos de software livre.
Guia do aluno
Neste guia, você terá reunidas uma série de informações importantes para que você comece
seu curso. São elas:
• Licenças para cópia de material disponível;
• Os 10 mandamentos do aluno de Educação a Distância;
• Como participar dos foruns e da wikipédia;
• Primeiros passos.
É muito importante que você entre em contato com TODAS estas informações, seguindo o
roteiro acima.
Licença
Copyright ©2006, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.br).
6
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos
da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior
públicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-
mentação Livre GNU".
Os 10 mandamentos do aluno de educação online
• 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado é
pré-requisito para a participação nos cursos a distância;
• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-
tica é necessário para poder executar as tarefas;
• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-
cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores;
• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e se fazendo ser respeitado pelos mesmos;
• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisão
e a sua recuperação de materiais;
• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações e
realizá-las em tempo real;
• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre;
• 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagens
e descobertas;
• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é
ponto - chave na comunicação pela Internet;
• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual não
controla a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.
Como participar dos fóruns e Wikipédia
Você tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:
. O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informações
que sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a
7
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação que
interesse ao grupo, favor postá-la aqui.
Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico do
curso. É recomendado que você faça uso do Fórum de dúvidas gerais que lhe dá recursos mais
efetivos para esta prática.
. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativo
para solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadas
a todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podem
ajudar.
Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com a
formalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópico
é recomendável ver se a sua pergunta já foi feita por outro participante.
A segunda forma se dá pelas Wikis:
. Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-
ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
ótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé-
dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em português pelos links:
• Página principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!
Primeiros Passos
Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:
• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;
• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas básicas do mesmo;
• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;
• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.
Perfil do Tutor
Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as
idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
8
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor
ou instrutor:
• fornece explicações claras acerca do que ele espera e do estilo de classificação que irá
utilizar;
• gosta que lhe façam perguntas adicionais;
• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-
que motivo a classificação foi ou não foi atribuída’;
• tece comentários completos e construtivos, mas de forma agradável (em contraste com um
reparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, de
ameaça e de nervossismo’)
• dá uma ajuda complementar para encorajar um estudante em dificuldade;
• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;
• ajuda o estudante a alcançar os seus objetivos;
• é flexível quando necessário;
• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
• escreve todas as correções de forma legível e com um nível de pormenorização adequado;
• acima de tudo, devolve os trabalhos rapidamente;
9
Parte III
GNU Free Documentation License
10
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
(Traduzido pelo João S. O. Bueno através do CIPSGA em 2001)
Esta é uma tradução não oficial da Licença de Documentação Livre GNU em Português Brasi-
leiro. Ela não é publicada pela Free Software Foundation, e não se aplica legalmente a distribuição
de textos que usem a GFDL - apenas o texto original em Inglês da GNU FDL faz isso. Entretanto,
nós esperamos que esta tradução ajude falantes de português a entenderem melhor a GFDL.
This is an unofficial translation of the GNU General Documentation License into Brazilian Por-
tuguese. It was not published by the Free Software Foundation, and does not legally state the
distribution terms for software that uses the GFDL–only the original English text of the GFDL does
that. However, we hope that this translation will help Portuguese speakers understand the GFDL
better.
Licença de Documentação Livre GNU Versão 1.1, Março de 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
É permitido a qualquer um copiar e distribuir cópias exatas deste documento de licença, mas
não é permitido alterá-lo.
INTRODUÇÃO
O propósito desta Licença é deixar um manual, livro-texto ou outro documento escrito "livre"no
sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copiá-lo ou redistribui-lo,
com ou sem modificações, comercialmente ou não. Secundariamente, esta Licença mantém
para o autor e editor uma forma de ter crédito por seu trabalho, sem ser considerado responsável
pelas modificações feitas por terceiros.
Esta Licença é um tipo de "copyleft"("direitos revertidos"), o que significa que derivações do
documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licença Pública Ge-
ral (GNU GPL), que é um copyleft para software livre.
Nós fizemos esta Licença para que seja usada em manuais de software livre, por que software
livre precisa de documentação livre: um programa livre deve ser acompanhado de manuais que
provenham as mesmas liberdades que o software possui. Mas esta Licença não está restrita a
manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente
do assunto ou se ele é publicado como um livro impresso. Nós recomendamos esta Licença prin-
cipalmente para trabalhos cujo propósito seja de introdução ou referência.
APLICABILIDADE E DEFINIÇÕES
Esta Licença se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo
detentor dos direitos autorais dizendo que ele pode ser distribuído sob os termos desta Licença.
O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do público é um
11
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
licenciado e é referida como "você".
Uma "Versão Modificada"do Documento se refere a qualquer trabalho contendo o documento
ou uma parte dele, quer copiada exatamente, quer com modificações e/ou traduzida em outra
língua.
Uma "Seção Secundária"é um apêndice ou uma seção inicial do Documento que trata ex-
clusivamente da relação dos editores ou dos autores do Documento com o assunto geral do
Documento (ou assuntos relacionados) e não contém nada que poderia ser incluído diretamente
nesse assunto geral (Por exemplo, se o Documento é em parte um livro texto de matemática, a
Seção Secundária pode não explicar nada de matemática).
Essa relação poderia ser uma questão de ligação histórica com o assunto, ou matérias relaci-
onadas, ou de posições legais, comerciais, filosóficas, éticas ou políticas relacionadas ao mesmo.
As "Seções Invariantes"são certas Seções Secundárias cujos títulos são designados, como
sendo de Seções Invariantes, na nota que diz que o Documento é publicado sob esta Licença.
Os "Textos de Capa"são certos trechos curtos de texto que são listados, como Textos de Capa
Frontal ou Textos da Quarta Capa, na nota que diz que o texto é publicado sob esta Licença.
Uma cópia "Transparente"do Documento significa uma cópia que pode ser lida automatica-
mente, representada num formato cuja especificação esteja disponível ao público geral, cujos
conteúdos possam ser vistos e editados diretamente e sem mecanismos especiais com editores
de texto genéricos ou (para imagens compostas de pixels) programas de pintura genéricos ou
(para desenhos) por algum editor de desenhos grandemente difundido, e que seja passível de
servir como entrada a formatadores de texto ou para tradução automática para uma variedade
de formatos que sirvam de entrada para formatadores de texto. Uma cópia feita em um formato
de arquivo outrossim Transparente cuja constituição tenha sido projetada para atrapalhar ou de-
sencorajar modificações subsequentes pelos leitores não é Transparente. Uma cópia que não é
"Transparente"é chamada de "Opaca".
Exemplos de formatos que podem ser usados para cópias Transparentes incluem ASCII sim-
ples sem marcações, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XML
usando uma DTD disponibilizada publicamente, e HTML simples, compatível com os padrões, e
projetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatos
proprietários que podem ser lidos e editados apenas com processadores de texto proprietários,
SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edição não estejam
disponíveis para o público, e HTML gerado automaticamente por alguns editores de texto com
finalidade apenas de saída.
A "Página do Título"significa, para um livro impresso, a página do título propriamente dita,
mais quaisquer páginas subsequentes quantas forem necessárias para conter, de forma legível,
o material que esta Licença requer que apareça na página do título. Para trabalhos que não
tenham uma página do título, "Página do Título"significa o texto próximo da aparição mais proe-
minente do título do trabalho, precedendo o início do corpo do texto.
12
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
FAZENDO CÓPIAS EXATAS
Você pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou não
comercial, desde que esta Licença, as notas de copyright, e a nota de licença dizendo que esta
Licença se aplica ao documento estejam reproduzidas em todas as cópias, e que você não acres-
cente nenhuma outra condição, quaisquer que sejam, às desta Licença.
Você não pode usar medidas técnicas para obstruir ou controlar a leitura ou confecção de
cópias subsequentes das cópias que você fizer ou distribuir. Entretanto, você pode aceitar com-
pensação em troca de cópias. Se você distribuir uma quantidade grande o suficiente de cópias,
você também precisa respeitar as condições da seção 3.
Você também pode emprestar cópias, sob as mesmas condições colocadas acima, e também
pode exibir cópias publicamente.
FAZENDO CÓPIAS EM QUANTIDADE
Se você publicar cópias do Documento em número maior que 100, e a nota de licença do
Documento obrigar Textos de Capa, você precisará incluir as cópias em capas que tragam, clara
e legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, e
Textos da Quarta Capa na capa de trás. Ambas as capas também precisam identificar clara e
legivelmente você como o editor dessas cópias. A capa da frente precisa apresentar o título com-
pleto com todas as palavras do título igualmente proeminentes e visíveis. Você pode adicionar
outros materiais às capas. Fazer cópias com modificações limitadas às capas, tanto quanto estas
preservem o título do documento e satisfaçam a essas condições, pode ser tratado como cópia
exata em outros aspectos.
Se os textos requeridos em qualquer das capas for muito volumoso para caber de forma
legível, você deve colocar os primeiros (tantos quantos couberem de forma razoável) na capa
verdadeira, e continuar os outros nas páginas adjacentes.
Se você publicar ou distribuir cópias Opacas do Documento em número maior que 100, você
precisa ou incluir uma cópia Transparente que possa ser lida automaticamente com cada cópia
Opaca, ou informar, em ou com, cada cópia Opaca a localização de uma cópia Transparente
completa do Documento acessível publicamente em uma rede de computadores, à qual o público
usuário de redes tenha acesso a download gratuito e anônimo utilizando padrões públicos de
protocolos de rede. Se você utilizar o segundo método, você precisará tomar cuidados razoavel-
mente prudentes, quando iniciar a distribuição de cópias Opacas em quantidade, para assegurar
que esta cópia Transparente vai permanecer acessível desta forma na localização especificada
por pelo menos um ano depois da última vez em que você distribuir uma cópia Opaca (direta-
mente ou através de seus agentes ou distribuidores) daquela edição para o público.
É pedido, mas não é obrigatório, que você contate os autores do Documento bem antes de
redistribuir qualquer grande número de cópias, para lhes dar uma oportunidade de prover você
com uma versão atualizada do Documento.
13
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
MODIFICAÇÕES
Você pode copiar e distribuir uma Versão Modificada do Documento sob as condições das se-
ções 2 e 3 acima, desde que você publique a Versão Modificada estritamente sob esta Licença,
com a Versão Modificada tomando o papel do Documento, de forma a licenciar a distribuição
e modificação da Versão Modificada para quem quer que possua uma cópia da mesma. Além
disso, você precisa fazer o seguinte na versão modificada:
A. Usar na Página de Título (e nas capas, se houver alguma) um título distinto daquele do Do-
cumento, e daqueles de versões anteriores (que deveriam, se houvesse algum, estarem listados
na seção "Histórico do Documento"). Você pode usar o mesmo título de uma versão anterior se
o editor original daquela versão lhe der permissão;
B. Listar na Página de Título, como autores, uma ou mais das pessoas ou entidades responsá-
veis pela autoria das modificações na Versão Modificada, conjuntamente com pelo menos cinco
dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que
cinco);
C. Colocar na Página de Título o nome do editor da Versão Modificada, como o editor;
D. Preservar todas as notas de copyright do Documento;
E. Adicionar uma nota de copyright apropriada para suas próprias modificações adjacente às
outras notas de copyright;
F. Incluir, imediatamente depois das notas de copyright, uma nota de licença dando ao público
o direito de usar a Versão Modificada sob os termos desta Licença, na forma mostrada no tópico
abaixo;
G. Preservar nessa nota de licença as listas completas das Seções Invariantes e os Textos de
Capa requeridos dados na nota de licença do Documento;
H. Incluir uma cópia inalterada desta Licença;
I. Preservar a seção entitulada "Histórico", e seu título, e adicionar à mesma um item dizendo
pelo menos o título, ano, novos autores e editor da Versão Modificada como dados na Página de
Título. Se não houver uma sessão denominada "Histórico"no Documento, criar uma dizendo o
título, ano, autores, e editor do Documento como dados em sua Página de Título, então adicionar
um item descrevendo a Versão Modificada, tal como descrito na sentença anterior;
J. Preservar o endereço de rede, se algum, dado no Documento para acesso público a uma
cópia Transparente do Documento, e da mesma forma, as localizações de rede dadas no Docu-
mento para as versões anteriores em que ele foi baseado. Elas podem ser colocadas na seção
"Histórico". Você pode omitir uma localização na rede para um trabalho que tenha sido publicado
pelo menos quatro anos antes do Documento, ou se o editor original da versão a que ela se refira
der sua permissão;
K. Em qualquer seção entitulada "Agradecimentos"ou "Dedicatórias", preservar o título da
14
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
seção e preservar a seção em toda substância e fim de cada um dos agradecimentos de contri-
buidores e/ou dedicatórias dados;
L. Preservar todas as Seções Invariantes do Documento, inalteradas em seus textos ou em
seus títulos. Números de seção ou equivalentes não são considerados parte dos títulos da seção;
M. Apagar qualquer seção entitulada "Endossos". Tal sessão não pode ser incluída na Versão
Modificada;
N. Não reentitular qualquer seção existente com o título "Endossos"ou com qualquer outro
título dado a uma Seção Invariante.
Se a Versão Modificada incluir novas seções iniciais ou apêndices que se qualifiquem como
Seções Secundárias e não contenham nenhum material copiado do Documento, você pode optar
por designar alguma ou todas aquelas seções como invariantes. Para fazer isso, adicione seus
títulos à lista de Seções Invariantes na nota de licença da Versão Modificada. Esses títulos preci-
sam ser diferentes de qualquer outro título de seção.
Você pode adicionar uma seção entitulada "Endossos", desde que ela não contenha qual-
quer coisa além de endossos da sua Versão Modificada por várias pessoas ou entidades - por
exemplo, declarações de revisores ou de que o texto foi aprovado por uma organização como a
definição oficial de um padrão.
Você pode adicionar uma passagem de até cinco palavras como um Texto de Capa da Frente
, e uma passagem de até 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos
de Capa na Versão Modificada. Somente uma passagem de Texto da Capa da Frente e uma de
Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade.
Se o Documento já incluir um texto de capa para a mesma capa, adicionado previamente por
você ou por acordo feito com alguma entidade para a qual você esteja agindo, você não pode
adicionar um outro; mas você pode trocar o antigo, com permissão explícita do editor anterior que
adicionou a passagem antiga.
O(s) autor(es) e editor(es) do Documento não dão permissão por esta Licença para que seus
nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer
Versão Modificada.
COMBINANDO DOCUMENTOS
Você pode combinar o Documento com outros documentos publicados sob esta Licença, sob
os termos definidos na seção 4 acima para versões modificadas, desde que você inclua na com-
binação todas as Seções Invariantes de todos os documentos originais, sem modificações, e liste
todas elas como Seções Invariantes de seu trabalho combinado em sua nota de licença.
O trabalho combinado precisa conter apenas uma cópia desta Licença, e Seções Invariantes
Idênticas com multiplas ocorrências podem ser substituídas por apenas uma cópia. Se houver
múltiplas Seções Invariantes com o mesmo nome mas com conteúdos distintos, faça o título de
15
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
cada seção único adicionando ao final do mesmo, em parênteses, o nome do autor ou editor
origianl daquela seção, se for conhecido, ou um número que seja único. Faça o mesmo ajuste
nos títulos de seção na lista de Seções Invariantes nota de licença do trabalho combinado.
Na combinação, você precisa combinar quaisquer seções entituladas "Histórico"dos diver-
sos documentos originais, formando uma seção entitulada "Histórico"; da mesma forma combine
quaisquer seções entituladas "Agradecimentos", ou "Dedicatórias". Você precisa apagar todas as
seções entituladas como "Endosso".
COLETÂNEAS DE DOCUMENTOS
Você pode fazer uma coletânea consitindo do Documento e outros documentos publicados
sob esta Licença, e substituir as cópias individuais desta Licença nos vários documentos com
uma única cópia incluida na coletânea, desde que você siga as regras desta Licença para cópia
exata de cada um dos Documentos em todos os outros aspectos.
Você pode extrair um único documento de tal coletânea, e distribuí-lo individualmente sob
esta Licença, desde que você insira uma cópia desta Licença no documento extraído, e siga esta
Licença em todos os outros aspectos relacionados à cópia exata daquele documento.
AGREGAÇÃO COM TRABALHOS INDEPENDENTES
Uma compilação do Documento ou derivados dele com outros trabalhos ou documentos se-
parados e independentes, em um volume ou mídia de distribuição, não conta como uma Ver-
são Modificada do Documento, desde que nenhum copyright de compilação seja reclamado pela
compilação. Tal compilação é chamada um "agregado", e esta Licença não se aplica aos outros
trabalhos auto-contidos compilados junto com o Documento, só por conta de terem sido assim
compilados, e eles não são trabalhos derivados do Documento.
Se o requerido para o Texto de Capa na seção 3 for aplicável a essas cópias do Documento,
então, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capa
do Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado.
Senão eles precisarão aparecer nas capas de todo o agregado.
TRADUÇÃO
Tradução é considerada como um tipo de modificação, então você pode distribuir traduções
do Documento sob os termos da seção 4. A substituição de Seções Invariantes por traduções
requer uma permissão especial dos detentores do copyright das mesmas, mas você pode incluir
traduções de algumas ou de todas as Seções Invariantes em adição às versões orignais dessas
Seções Invariantes. Você pode incluir uma tradução desta Licença desde que você também in-
clua a versão original em Inglês desta Licença. No caso de discordância entre a tradução e a
16
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
versão original em Inglês desta Licença, a versão original em Inglês prevalecerá.
TÉRMINO
Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expres-
samente especificado sob esta Licença. Qualquer outra tentativa de copiar, modificar, sublicen-
ciar, ou distribuir o Documento é nula, e resultará automaticamente no término de seus direitos
sob esta Licença. Entretanto, terceiros que tenham recebido cópias, ou direitos de você sob esta
Licença não terão suas licenças terminadas, tanto quanto esses terceiros permaneçam em total
acordo com esta Licença.
REVISÕES FUTURAS DESTA LICENÇA
A Free Software Foundation pode publicar novas versões revisadas da Licença de Documen-
tação Livre GNU de tempos em tempos. Tais novas versões serão similares em espirito à versão
presente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupações. Veja
http://www.gnu.org/copyleft/.
A cada versão da Licença é dado um número de versão distinto. Se o Documento especificar
que uma versão particular desta Licença "ou qualquer versão posterior"se aplica ao mesmo, você
tem a opção de seguir os termos e condições daquela versão específica, ou de qualquer versão
posterior que tenha sido publicada (não como rascunho) pela Free Software Foundation. Se o
Documento não especificar um número de Versão desta Licença, você pode escolher qualquer
versão já publicada (não como rascunho) pela Free Software Foundation.
ADENDO: Como usar esta Licença para seus documentos
Para usar esta Licença num documento que você escreveu, inclua uma cópia desta Licença
no documento e ponha as seguintes notas de copyright e licenças logo após a página de título:
Copyright (c) ANO SEU NOME.
É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos da Licença
de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior publicada pela Free Soft-
ware Foundation; com as Seções Invariantes sendo LISTE SEUS TÍTULOS, com os Textos da
Capa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cópia da li-
cença está inclusa na seção entitulada "Licença de Documentação Livre GNU".
Se você não tiver nenhuma Seção Invariante, escreva "sem Seções Invariantes"ao invés de
dizer quais são invariantes. Se você não tiver Textos de Capa da Frente, escreva "sem Textos de
Capa da Frente"ao invés de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para os
Textos da Quarta Capa.
Se o seu documento contiver exemplos não triviais de código de programas, nós recomenda-
mos a publicação desses exemplos em paralelo sob a sua escolha de licença de software livre,
17
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
tal como a GNU General Public License, para permitir o seu uso em software livre.
18
Parte IV
UML
19
Capítulo 1
O que é UML
A UML (Unified Modeling Language) é uma linguagem de modelagem livre que permite que
desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados. Ela foi
criada para padronizar a forma de especificação de projetos de desenvolvimento de software.
Utiliza-se UML para documentação, especificação, construção e visualização de sistemas.
20
Capítulo 2
Plano de ensino
2.1 Objetivo
Capacitar o usuário para o uso autônomo da linguagem UML.
2.2 Público Alvo
Pessoas envolvidas em qualquer etapa de tarefas de desenvolvimento de software.
2.3 Pré-requisitos
Os usuários deverão ser, necessariamente, funcionários públicos e ter conhecimentos básicos
para operar um computador e de lógica de programação.
2.4 Descrição
O curso será realizado na modalidade Educação à Distância e utilizará a Plataforma Moodle
como ferramenta de aprendizagem. O curso tem duração de uma semana e possui um conjunto
de atividades (lições, fóruns, glossários, questionários e outros) que deverão ser executadas de
acordo com as instruções fornecidas. O material didático estará disponível on-line de acordo com
as datas pré-estabelecidas em cada tópico.
2.5 Metodologia
O curso está dividido da seguinte maneira:
Duração Descrição do Módulo
1 semana Lição 1 - Introdução:
Lição 2 - Conceitos Iniciais;
Lição 3 - Diagramas Estruturais;
Lição 4 - Diagramas Comportamentais.
21
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Todo o material está no formato de lições, e estará disponível ao longo do curso. As lições
poderão ser acessadas quantas vezes forem necessárias. Aconselhamos a leitura de "Ambien-
tação do Moodle", para que você conheça o produto de Ensino à Distância, evitando dificuldades
advindas do "desconhecimento"sobre o mesmo.
Ao final de cada semana do curso será disponibilizada a prova referente ao módulo estudado
anteriormente que também conterá perguntas sobre os textos indicados. Utilize o material de
cada semana e os exemplos disponibilizados para se preparar para prova.
Os instrutores estarão à sua disposição ao longo de todo curso. Qualquer dúvida deve ser
disponibilizada no fórum ou enviada por e-mail. Diariamente os monitores darão respostas e
esclarecimentos.
2.6 Programa
O curso de UML oferecerá o seguinte conteúdo:
• Conceitos iniciais;
• Diagramas estruturais;
• Diagramas comportamentais.
2.7 Avaliação
Toda a avaliação será feita on-line.
Aspectos a serem considerados na avaliação:
• Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento;
• Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados.
Instrumentos de avaliação:
• Participação ativa nas atividades programadas;
• Avaliação ao final do curso;
• O participante fará várias avaliações referente ao conteúdo do curso. Para a aprovação e
obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo
com a fórmula abaixo:
• Nota Final = ((ML x 7) + (AF x 3)) / 10 = Média aritmética das lições;
• AF = Avaliações.
2.8 Bibliografia
• Site oficial: http://www.uml.org/
• Wikipedia: http://pt.wikipedia.org/wiki/UML
22
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• Manual do Umbrello UML Modeller: http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-
basics.html
• http://inf.unisul.br/ osmarjr/download/
• http://www.ucb.br/ucbtic/mgcti/paginapessoalprof/Nicolas/Disciplinas/UML/node8.html
• osé Carlos Macoratti: http://www.macoratti.net/vb_uml2.htm
23
Capítulo 3
Introdução
3.1 Introdução
A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de
terceira geração, ou seja, uma linguagem projetada para ser facilmente entendida por pessoas,
com suporte a nomes e variáveis. A UML não é um método de desenvolvimento, o que significa
que ela não diz para você o que fazer primeiro e em seguida, ou como desenhar seu sistema,
mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos.
Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em
diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados,
isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified
Process) tenha sido especificamente desenvolvido utilizando a UML.
É importante distinguir entre um modelo UML e um diagrama (ou conjunto de diagramas) de
UML, o último é uma representação gráfica da informação do primeiro, mas o primeiro pode existir
independentemente. O XMI (XML Metadata Interchange) na sua versão corrente disponibiliza
troca de modelos, mas não de diagramas.
A UML (Unified Modeling Language) é uma linguagem para especificação, documentação,
visualização e desenvolvimento de sistemas orientados a objetos. Sintetiza os principais méto-
dos existentes, sendo considerada uma das linguagens mais expressivas para modelagem de
sistemas orientados a objetos. Por meio de seus diagramas é possível representar sistemas de
softwares sob diversas perspectivas de visualização. Facilita a comunicação de todas as pessoas
envolvidas no processo de desenvolvimento de um sistema - gerentes, coordenadores, analistas,
desenvolvedores - por apresentar um vocabulário de fácil entendimento.
3.2 História
A UML tem origem na compilação das "melhores práticas de engenharia"que provaram ter
sucesso na modelagem de sistemas grandes e complexos. Sucedeu aos conceitos de Booch,
OMT (Rumbaugh) e OOSE (Jacobson) fundindo-os numa única linguagem de modelagem comum
e largamente utilizada. A UML pretende ser a linguagem de modelagem padrão para modelar
sistemas concorrentes e distribuídos.
A UML ainda não é um padrão da indústria, mas esse objetivo está a tomar forma sob os aus-
pícios do Object Management Group (OMG). O OMG pediu informação acerca de metodologias
orientadas a objetos que pudessem criar uma linguagem rigorosa de modelização de software.
Muitos líderes da indústria responderam na esperança de ajudar a criar o padrão.
24
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Os esforços para a criação da UML tiveram início em outubro de 1994, quando Rumbaugh se
juntou a Booch na Rational. Com o objetivo de unificar os métodos Booch e OMT, decorrido um
ano de trabalho, foi lançado, em outubro de 1995, o esboço da versão 0.8 do Método Unificado
(como era conhecido). Nesta mesma época, Jacobson se associou à Rational e o escopo do
projeto da UML foi expandido para incorporar o método OOSE. Nasceu então, em junho de 1996,
a versão 0.9 da UML.
25
Capítulo 4
Conceitos Iniciais
4.1 Diagramas
Um diagrama é uma representação gráfica de um sistema sob determinada visão. Existem
diversos motivos para utilizá-los. Eles são úteis na documentação, tornando a manutenção mais
fácil, ajudam a compreender melhor os requisitos de um sistema antes de implementá-lo, simpli-
ficam o entendimento de sistemas complexos usando a técnica de dividir para conquistar.
Os diversos diagramas da UML podem ser divididos em dois grandes grupos, os diagramas
estruturais e os comportamentais. Nas duas lições seguintes você aprenderá um pouco sobre
cada um desses diagramas.
Estruturais:
• Diagrama de classes;
• Diagrama de componentes;
• Diagrama de objetos;
• Diagrama de artefatos;
• Diagrama de implantação.
Comportamentais:
• Diagrama de casos de uso;
• Diagrama de seqüência;
• Diagrama de colaboração;
• Diagrama de gráfico de estados;
• Diagrama de atividades.
4.2 Programas
Para facilitar a tarefa de modelagem é preferível que você utilize um programa específico para
desenhar diagramas em UML. Existem muitos programas livres que fazem isto, entre eles estão o
Jude, que pode ser baixado no endereço http://jude.change-vision.com/jude-web/download/index.html,
e o Umbrello, que pode ser instalado com o comando "apt-get install umbrello".
26
Capítulo 5
Diagramas Estruturais
5.1 Classes
Na lógica de programação orientada a objetos uma classe é uma abstração de um conjunto
de objetos com as mesmas características (atributos, operações, relacionamentos e semântica).
Uma classe define os atributos de seus objetos e métodos.
Os atributos são elementos das classes semelhantes às variáveis da lógica de programação
estruturada. Cada atributo representa uma propriedade do item que está sendo modelado. Para
cada atributo é definido um intervalo de valores possíveis. Por exemplo, a classe funcionário pode
ter os atributos nome, endereço, telefone, número de identidade, salário, cargo.
Na 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:
• + Representa atributos públicos;
• # Representa atributos protegidos;
• - Representa atributos privados.
Veja a seguir a representação de uma classe com seus atributos na linguagem UML:
Além de atributos as classes têm métodos. Um método é uma operação que pode ser exe-
cutada sobre os objetos de uma classe. São os métodos que executam todas as funcionalidades
do programa, como fazer cálculos, exibir mensagens, gerar relatórios, etc.
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 valores devolvidos. As operações podem, assim
como os Atributos, mostrar a sua visibilidade:
27
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• + Corresponde a operações públicas;
• # Corresponde a operações protegidas;
• - Corresponde a operações privadas.
A próxima figura mostra a representação em UML para uma classe com as operações latir, morder
e comer.
5.2 Relacionamentos
Relacionamentos
Além de identificar as classes do seu sistema será preciso representar os relacionamentos
que existem entre elas. Há três tipos de relacionamentos: dependências, generalizações e asso-
ciações.
Dependência
Uma dependência é um relacionamento em que um item usa dados e serviços de outro item.
Representa-se uma dependência em UML com uma linha tracejada apontando do item que de-
pende de alguma informação para o que a fornece. Generalização
Uma generalização é um relacionamento entre ítens gerais e ítens mais específicos. Esse
tipo de relacionamento indica que objetos da classe específica podem ser utilizados em qualquer
lugar onde a classe geral ocorra. A classe específica, que pode ser chamada de filha, herda todas
as características da classe geral, ou classe mãe. Isto é, a filha tem todos os atributos e todos os
métodos da classe geral. Ela pode ter também atributos e métodos próprios, que não estão na
classe mãe. Na UMl representa-se uma generalização com uma linha que aponta da filha para a
mãe.
28
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Associação
Uma associação representa uma relação entre classes e dá a semântica e a estrutura comum
para vários tipos de "ligações"entre os objetos.
As associações são o mecanismo que permite aos objetos comunicarem uns com os outros.
Descreve a ligação entre as diferentes classes (a ligação entre os objetos em si é chamada de
ligação do objeto).
As associações podem ter um papel que indica o objetivo da associação e podem ser uni-
direcionais ou bidirecionais (indica se os dois objetos 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 objetos desse lado da
associação poderão se relacionar com um objeto do outro lado.
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 (*) no lado do máximo que representa o infinito.
Agregação
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 "do ’todo’ para as partes". Uma agregação diz
como é que a classe que tem o papel do ’todo’ é composta (ou tem) as outras classes, que
tem o papel das partes. Para as agregações, a classe que atua como o ’todo’ tem sempre uma
multiplicidade de um.
No UML, as agregações são representadas por uma associação com um losango do lado do
’todo’.
Composição
As composições são associações que representam agregações muito fortes. 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.
No UML, as Composições são representadas por um losango cheio do lado do ’todo’.
29
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
5.3 Diagramas de classes
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 "estáticos"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 "conhecem"outras classes ou que
"fazem parte"de outra classe, mas não mostram as chamadas de métodos entre elas.
Diagramas de Classe podem conter diversos outros ítens além das classes:
Interfaces
Interfaces são classes abstratas que significam instâncias que não podem ser diretamente
criadas delas. Elas podem conter operações, mas não podem conter atributos. Classes podem
derivar de interfaces (através da realização de uma associação) e instâncias podem então ser
feitas destes diagramas.
Tipos de dados
Tipos de dados são primitivos uma vez que são tipicamente construídos numa linguagem de
programação. Exemplos comuns são inteiros e lógicos. Eles não podem ser relacionados à clas-
ses, mas classes podem se relacionar com eles.
Enumerações
Enumerações são uma lista simples de valores. Um exemplo típico é uma enumeração para
dias da semana. As opções de uma enumeração são chamadas Literais de Enumeração. Como
tipos de dados, elas não podem ter relacionamentos para classes, mas classes podem relacionar-
se com elas.
Pacotes
Pacotes representam um espaço de nomes numa linguagem de programação. Num diagrama
eles são usados para representar partes de um sistema que contém mais de uma classe, talvez
centenas de classes. Veja na figura a seguir um exemplo de um diagrama de classes:
5.4 Diagrama de Objetos
Objetos
Os objetos são instanciações de classes. Enquanto as classes são abstrações, os objetos
existem no mundo real. Um objeto representa uma entidade que pode ser física, conceitual ou de
software. É uma abstração de algo que possui fronteira definida e significado para a aplicação.
30
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Na UML a representação de um objeto é quase igual a de uma classe. A única diferença é que o
nome dos objetos aparecem sublinhados, como na figura a seguir. Se você quiser pode escrever
o nome da classe depois do nome do objeto para que fique mais claro a que classe ele pertence.
Diagrama de Objetos
O diagrama de objetos é uma variação do diagrama de classes e utiliza quase a mesma
notação. A diferença é que o diagrama de objetos mostra os objetos que foram instanciados das
classes. O diagrama de objetos é como se fosse o perfil do sistema em um certo momento de
sua execução.
A mesma notação do diagrama de classes é utilizada com duas exceções: os objetos são
escritos com seus nomes sublinhados e todas as instâncias num relacionamento são mostradas.
Os diagramas de objetos não são tão importantes como os diagramas de classes, mas eles são
muito úteis para exemplificar diagramas complexos de classes ajudando muito em sua compre-
ensão. Diagramas de objetos também são usados como parte dos diagramas de colaboração,
onde a colaboração dinâmica entre os objetos do sistema são mostrados.
5.5 Diagrama de Componentes
Componente de Software é o termo utilizado para descrever o elemento de software que en-
capsula uma série de funcionalidades. Um componente é uma unidade independente, que pode
ser utilizado com outros componentes para formar um sistema mais complexo. Em progamação
orientada a objetos um componente é o objeto que implementa uma interface e é autônomo em
relação a outros componentes do sistema. Na UML existem cinco estereótipos de componentes:
executável, biblioteca, tabela, documento e arquivo. A figura abaixo mostra a representação de
um componente na UML:
Um diagrama de componentes ilustra os componentes de software e os relacionamentos en-
tre eles, representando a estrutura do código gerado. O diagrama de componentes não mostra
instâncias de componentes, mostra apenas componentes como tipos. As instâncias de com-
ponentes são mostradas no diagrama de execução. As dependências entre componentes são
representadas por uma linha tracejada apontando para o componente que fornece a informação
da qual o outro precisa, assim como no diagrama de classes.
O diagrama de componentes é utilizado para:
31
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• Modelar os componentes do código-fonte, do código executável do software;
• Organizar o código fonte, mostrando as dependências entre os diferentes arquivos fonte
de modo que fique claro quais arquivos precisarão ser recompilados quando for feita uma
modificação em algum deles;
• Destacar a função de cada módulo para facilitar a sua reutilização;
• Auxiliar no processo de engenharia reversa, por meio da organização dos módulos do sis-
tema e seus relacionamentos.
5.6 Diagrama de Componentes
5.6.1 Diagrama de Artefatos
Um artefato é o produto de uma ou mais atividades dentro do contexto do desenvolvimento
de um sistema. Pode ser um documento de texto, código fonte, um programa executável, uma
biblioteca, etc.
O diagrama de artefatos mostra a organização dos artefatos do sistema e o relacionamento
entre eles. Geralmente os diagramas de artefatos são utilizados para a modelagem de um dos
seguintes itens:
• Código fonte;
• Versões executáveis;
• Bancos de dados físicos;
• Sistemas adaptáveis.
5.6.2 Diagrama de Implantação
O diagrama de implantação mostra a organização do hardware do sistema. Ele é utilizado para
a representação de sistemas distribuídos (sistemas que utilizam vários computadores ligados em
rede), mostrando quais processos serão executados em cada máquina. Neste diagrama cada
máquina é chamada de nó. Pode-se dizer que os diagramas de implatação são diagramas de
classes que mostram os nós do sitema e os artefatos que existem neles.
32
Capítulo 6
Diagramas Comportamentais
6.1 Atores
Os atores representam os usuários do sistema, eles podem ser pessoas, dispositivo de hard-
ware ou outro sistema. Por exemplo, em uma escola pode haver os atores aluno, professor, dire-
tor, coordenador, representante de turma, etc. Também podem ser atores o sistema de cobranças
que envia emails aos pais, o sistema de cálculo das notas, etc. Cada ator tem determinados pa-
péis dentro do sistema.
Atores não representam as pessoas físicas ou sistemas, mas sua regra. Isto significa que
quando uma pessoa interage com o sistema de diferentes maneiras (assumindo diferentes regras)
ela será representada por diversos atores. Por exemplo uma pessoa que fornece suporte ao
cliente por telefone e recebe ordens do cliente para o sistema pode ser representada por um ator
da "Equipe de Suporte"e um ator "Representante de Vendas"
Na figura abaixo é mostrada a representação de atores na UML.
6.2 Casos de Uso
Um caso de uso descreve uma funcionalidade provida pelo sistema, um grupo de atividades
num sistema que produz um resultado concreto e tangível. Casos de Uso são descrições de inte-
rações típicas entre os usuários de um sistema e o sistema propriamente dito. Eles representam
a interface externa do sistema e especificam um conjunto de exigências do que o sistema deve
fazer (lembre-se: somente o quê, não como).
O conjunto de casos de uso representa todas as funções do sistema. Ele não deve fazer nada
além do que é descrito nos casos de uso, ou melhor, não deve haver nenhuma funcionalidade
que não é descrita pelos casos de uso.
33
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Quando trabalhar com Casos de Uso, é importante lembrar-se de algumas regras simples:
• Cada Caso de Uso está relacionado com no mínimo um ator;
• Cada Caso de Uso possui um iniciador (isto é um ator);
• Cada Caso de Uso liga-se a um resultado relevante (um resultado com "valor de negócio").
Casos de Uso também podem ter relacionamentos com outros Casos de Uso. Os três tipos
mais comuns de relacionamento entre Casos de Uso são:
• «inclui-se» que especifica que um Caso de Uso toma lugar dentro de outro Caso de Uso;
• «estende» que especifica que em determinadas situações, ou em algum ponto (chamado
um ponto de extensão) um Caso de Uso será estendido por outro;
• Generalização especifica que um Caso de Uso herda as características do "Super"Caso de
Uso, e pode sobrepor algumas delas ou adicionar novas de maneira semelhante à herança
entre classes.
Na UML os casos de uso são representados por elipses.
Descrição do Caso de Uso
Descrição do Caso de Uso são narrativas de texto do Caso de Uso. Elas usualmente tomam a
forma de uma nota ou um documento que é de alguma maneira ligado ao Caso de Uso, e explana
o processo ou atividades que tomarão lugar no Caso de Uso.
6.3 Diagrama de Casos de Uso
O diagrama de casos de uso ilustra os comportamentos que o programa terá quando estiver
pronto. Ele descreve relacionamentos e dependências entre um grupo de Caso de Uso e os
Atores participantes no processo.
Quando há uma comunicação entre um ator e um caso de uso ela é representada por um
relacionamento. Um caso de uso pode se relacionar com vários atores. Por exemplo, o caso de
uso matrícula de alunos pode ter os atores aluno e sistema de matrículas. Em UML representa-
se um relacionamento com uma linha reta. Se esta linha não apontar para nenhuma direção
adimite-se que a comunicação parte do ator. Se você quiser indicar um relacionamento em que
a iniciativa parte do processo basta usar uma seta apontando do caso de uso para o ator. O
nome dado aos casos de uso é muito importante para que a interpretação do diagrama seja fácil
e rápida. É aconselhável que se utilize um padrão para estes nomes. Como casos de uso são
processos de preferência use verbos para seus nomes.
34
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
6.4 Diagrama de Seqüência
Um diagrama de seqüência mostra a seqüência dos processos (mais especificamente de men-
sagens passadas entre os objetos) num sistema. Ele é usado para representar o comportamento
das operações, métodos (procedimentos ou funções) entre objetos de um cenário. Um cenário é
uma forma de ocorrência de um caso de uso. Este diagrama é construído a partir do Diagrama
de Casos de Usos. Primeiro, se define qual o papel do sistema (Uses Case), depois é definido
como o software realizará seu papel(Seqüência de operações).
Um diagrama de seqüência descreve a maneira como os grupos de objetos colaboram em
algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de
uso. Ele exibe os objetos e as mensagens passadas entre esses objetos no caso de uso. Um
design pode ter uma grande quantidade de métodos em classes diferentes. Isso torna difícil
determinar a seqüência global do comportamento. Esse diagrama é simples e lógico, a fim de
tornar óbvios a seqüência e o fluxo de controle. Geralmente para cada caso de uso é feito um
diagrama de seqüência mostrando a operação normal do sistema para este caso de uso e depois
são feitos outros diagramas mostrando as seqüências alternativas e o tratamento de erros.
Em Diagramas de Seqüência objetos são representados através de linhas verticais tracejadas,
com o nome do Objeto no topo. O eixo do tempo é também vertical, aumentando para baixo,
de modo que as mensagens são enviadas de um Objeto para outro na forma de setas com a
operação e os nomes dos parâmetros.
Mensagens pode ser síncronas, o tipo normal de mensagem de chamada onde o controle é
passado para o objeto chamado até o método ter terminado sua execução, ou assíncronas onde
o controle é passado diretamente para o objeto chamado. Mensagens síncronas possuem uma
35
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
caixa vertical no lado do objeto chamado para mostrar o controle do fluxo do programa.
A figura seguinte mostra um exemplo de um diagrama de seqüência:
6.5 Diagrama de Colaboração
Diagramas de Colaboração mostram as interações que ocorrem entre os objetos participantes
numa situação específica. Isto é mais ou menos a mesma informação mostrada pelos Diagra-
mas de Seqüência, mas neste a ênfase é colocada em como as interações ocorrem no tempo,
enquanto os Diagramas de Colaboração colocam os relacionamentos entre os objetos e sua to-
pologia em destaque.
Em Diagramas de Colaboração as mensagens enviadas de um objeto para outro são repre-
sentadas por setas, mostrando o nome da mensagem, parâmetros, e a seqüência da mensagem.
Diagramas de Colaboração são especialmente indicados para mostrar um fluxo ou situação es-
pecífica do programa e são um dos melhores tipos de diagrama para rapidamente demonstrar ou
explanar um processo na lógica do programa.
36
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
6.6 Diagrama de Gráfico de Estados
Estados
Estados são os blocos construídos dos Diagramas de Estado. Um Estado pertence a exata-
mente uma classe e representa um resumo dos valores dos atributos que uma classe pode tomar.
Um Estado UML descreve o estado interno de um objeto para uma classe em particular
Observe que nem toda mudança em um dos atributos de um objeto pode ser representada
por um Estado, mas somente aquelas mudanças que podem afetar significativamente o trabalho
do objeto
Existem dois tipos especiais de Estados: Inicial e Final. Eles são especiais porque nenhum
evento pode fazer com que um Objeto retorne para seu estado Inicial, e da mesma maneira ne-
nhum evento pode tirar um Objeto de seu estado Final uma vez que ele já o tenha alcançado.
Diagrama de Estados
Diagramas de Estado mostram os diferentes estados de um Objeto durante sua vida, e o
estímulo que faz com que o Objeto mude seu estado.
Diagramas de Estado vêem Objetos como máquinas de estado ou automatismos finitos que
podem ser de um conjunto de estados finitos e que podem mudar seu estado através de um
conjunto finito de estímulos. Por exemplo um tipo de Objeto ServidorRede pode estar em um dos
seguintes estados durante sua vida:
• Pronto;
• Ouvindo;
• Trabalhando;
37
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• Parado.
e os eventos que podem fazer com que o Objeto mude de estado são:
• Objeto é criado;
• Objeto recebe mensagem ouvir;
• Um Cliente solicita uma conexão através da rede;
• Um Cliente termina um pedido;
• O pedido é executado e terminado;
• Objeto recebe mensagem parar;
• etc.
6.7 Diagramas de atividades
Atividade
Uma Atividade é um passo simples num processo. Uma Atividade é um estado no sistema
com atividade interna e, pelo menos, uma transição de saída. Atividades podem também ter mais
de uma transição de saída se elas possuírem condições diferentes.
38
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Atividades podem formar hierarquias, isto significa que uma Atividade pode ser composta por
diversas Atividades em "detalhe", na qual as transições de entrada e saída devem corresponder
às transições de entrada e saída do diagrama de detalhe.
Diagrama de Atividade
O Diagrama de Atividade descreve a seqüência de atividades num sistema com a ajuda as
Atividades. Diagramas de Atividades são uma forma especial de Diagramas de Estado, que
somente (ou principalmente) contêm Atividades.
Diagramas de Atividades são similares aos Diagramas de Fluxo de procedimentos, com a
diferença de que todas as Atividades são claramente anexas aos Objetos.
Diagramas de Atividade são sempre associados a um Classe, uma Operação ou um Caso de
Uso.
Diagramas de Atividades suportam Atividades seqüenciais bem como paralelas. A execução
paralela é representada pelos ícones Forquilha/Esperar, e para as Atividades executadas em
paralelo, não é importante a ordem na qual elas se executam (elas podem ser executadas ao
mesmo tempo ou uma após a outra).
39

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

X dialog
X dialogX dialog
X dialog
 
Zope
ZopeZope
Zope
 
Qemu
QemuQemu
Qemu
 
Quanta
QuantaQuanta
Quanta
 
Selinux
SelinuxSelinux
Selinux
 
Samba
SambaSamba
Samba
 
Squid
SquidSquid
Squid
 
Shell script
Shell scriptShell script
Shell script
 
Servidor de emails_seguro
Servidor de emails_seguroServidor de emails_seguro
Servidor de emails_seguro
 
Xdmcp
XdmcpXdmcp
Xdmcp
 
Tcl tk
Tcl tkTcl tk
Tcl tk
 
Jspservlets
JspservletsJspservlets
Jspservlets
 
Jdbc
JdbcJdbc
Jdbc
 
Python gtk
Python gtkPython gtk
Python gtk
 
Java Basico
Java BasicoJava Basico
Java Basico
 
Java applet
Java appletJava applet
Java applet
 
Manipulando pacotes
Manipulando pacotesManipulando pacotes
Manipulando pacotes
 
Java swing
Java swingJava swing
Java swing
 
J2me
J2meJ2me
J2me
 
Horde
HordeHorde
Horde
 

Semelhante a Uml

Inkscape
InkscapeInkscape
InkscapeTiago
 
Pascal
PascalPascal
PascalTiago
 
Drivers de dispostivos_linux
Drivers de dispostivos_linuxDrivers de dispostivos_linux
Drivers de dispostivos_linuxTiago
 
Pen linux
Pen linuxPen linux
Pen linuxTiago
 
Gerenciamento de projetos
Gerenciamento de projetosGerenciamento de projetos
Gerenciamento de projetosTiago
 
Linguagem ruby
Linguagem rubyLinguagem ruby
Linguagem rubyTiago
 
Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodleTiago
 
Drupal
DrupalDrupal
DrupalTiago
 
Programacao gtk
Programacao gtkProgramacao gtk
Programacao gtkTiago
 
Java awt
Java awtJava awt
Java awtTiago
 
K mobile jpilot_kpilot
K mobile jpilot_kpilotK mobile jpilot_kpilot
K mobile jpilot_kpilotTiago
 
Fw builder
Fw builderFw builder
Fw builderTiago
 
Iptables
IptablesIptables
IptablesTiago
 
Nagios2
Nagios2Nagios2
Nagios2Tiago
 

Semelhante a Uml (20)

Nvu
NvuNvu
Nvu
 
Inkscape
InkscapeInkscape
Inkscape
 
Pascal
PascalPascal
Pascal
 
J2me
J2meJ2me
J2me
 
Drivers de dispostivos_linux
Drivers de dispostivos_linuxDrivers de dispostivos_linux
Drivers de dispostivos_linux
 
Pen linux
Pen linuxPen linux
Pen linux
 
Plone
PlonePlone
Plone
 
Gerenciamento de projetos
Gerenciamento de projetosGerenciamento de projetos
Gerenciamento de projetos
 
Mrtg
MrtgMrtg
Mrtg
 
Linguagem ruby
Linguagem rubyLinguagem ruby
Linguagem ruby
 
Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodle
 
Drupal
DrupalDrupal
Drupal
 
Programacao gtk
Programacao gtkProgramacao gtk
Programacao gtk
 
Java awt
Java awtJava awt
Java awt
 
Ltsp
LtspLtsp
Ltsp
 
K mobile jpilot_kpilot
K mobile jpilot_kpilotK mobile jpilot_kpilot
K mobile jpilot_kpilot
 
Fw builder
Fw builderFw builder
Fw builder
 
Ferm
FermFerm
Ferm
 
Iptables
IptablesIptables
Iptables
 
Nagios2
Nagios2Nagios2
Nagios2
 

Mais de Tiago

6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascalTiago
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascalTiago
 
Python bge
Python bgePython bge
Python bgeTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharpTiago
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpTiago
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpTiago
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpTiago
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharpTiago
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantesTiago
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharpTiago
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivosTiago
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafaelTiago
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharpTiago
 
Classes csharp
Classes csharpClasses csharp
Classes csharpTiago
 
C# o basico
C#   o basicoC#   o basico
C# o basicoTiago
 
C# classes
C#   classesC#   classes
C# classesTiago
 

Mais de Tiago (20)

6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascal
 
Python bge
Python bgePython bge
Python bge
 
Curso python
Curso pythonCurso python
Curso python
 
Curso python
Curso pythonCurso python
Curso python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharp
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharp
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharp
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharp
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharp
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantes
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharp
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafael
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharp
 
Classes csharp
Classes csharpClasses csharp
Classes csharp
 
C# o basico
C#   o basicoC#   o basico
C# o basico
 
C# classes
C#   classesC#   classes
C# classes
 

Último

Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 

Último (20)

Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 

Uml

  • 2. Sumário I Sobre essa Apostila 3 II Informações Básicas 5 III GNU Free Documentation License 10 IV UML 19 1 O que é UML 20 2 Plano de ensino 21 2.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.7 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.8 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3 Introdução 24 3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2 História . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4 Conceitos Iniciais 26 4.1 Diagramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2 Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5 Diagramas Estruturais 27 5.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 Relacionamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.3 Diagramas de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.4 Diagrama de Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.5 Diagrama de Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.6 Diagrama de Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.6.1 Diagrama de Artefatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.6.2 Diagrama de Implantação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1
  • 3. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF 6 Diagramas Comportamentais 33 6.1 Atores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.2 Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.3 Diagrama de Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.4 Diagrama de Seqüência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.5 Diagrama de Colaboração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.6 Diagrama de Gráfico de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.7 Diagramas de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2
  • 4. Parte I Sobre essa Apostila 3
  • 5. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Conteúdo O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in- ternet, disponíveis em diversos sites ou originalmente produzido no CDTC (http://www.cdtc.org.br.) O formato original deste material bem como sua atualização está disponível dentro da licença GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção de mesmo nome, tendo inclusive uma versão traduzida (não oficial). A revisão e alteração vem sendo realizada pelo CDTC (suporte@cdtc.org.br) desde outubro de 2006. Críticas e sugestões construtivas serão bem-vindas a qualquer hora. Autores A autoria deste é de responsabilidade de Beatriz Marília Ferreira Ribeiro (beatriz@cdtc.org.br). O texto original faz parte do projeto Centro de Difusão de Tecnologia e Conhecimento que vêm sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informação) em conjunto com outros parceiros institucionais, e com as universidades federais brasileiras que tem produzido e utilizado Software Livre apoiando inclusive a comunidade Free Software junto a outras entidades no país. Informações adicionais podem ser obtidas através do email ouvidoria@cdtc.org.br, ou da home page da entidade, através da URL http://www.cdtc.org.br. Garantias O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi- lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizam direta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido. Licença Copyright ©2006, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.br) . Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS- TILA. A copy of the license is included in the section entitled GNU Free Documentation License. 4
  • 7. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Sobre o CDTC Objetivo Geral O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina- ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito do desenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira. Objetivo Específico Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário e de código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre os servidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercado nacional a adotar novos modelos de negócio da tecnologia da informação e de novos negócios de comunicação com base em software não-proprietário e de código fonte aberto, oferecendo treinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários, criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar como incentivadores e defensores dos produtos de software não proprietários e código fonte aberto, ofe- recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento de produtos de software não proprietários e do seu código fonte livre, articulando redes de terceiros (dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro- dutos de software livre. Guia do aluno Neste guia, você terá reunidas uma série de informações importantes para que você comece seu curso. São elas: • Licenças para cópia de material disponível; • Os 10 mandamentos do aluno de Educação a Distância; • Como participar dos foruns e da wikipédia; • Primeiros passos. É muito importante que você entre em contato com TODAS estas informações, seguindo o roteiro acima. Licença Copyright ©2006, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.br). 6
  • 8. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior públicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA APOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu- mentação Livre GNU". Os 10 mandamentos do aluno de educação online • 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado é pré-requisito para a participação nos cursos a distância; • 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá- tica é necessário para poder executar as tarefas; • 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân- cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal, dos colegas e dos professores; • 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus colegas de turma respeitando-os e se fazendo ser respeitado pelos mesmos; • 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisão e a sua recuperação de materiais; • 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações e realizá-las em tempo real; • 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre; • 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagens e descobertas; • 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é ponto - chave na comunicação pela Internet; • 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual não controla a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração. Como participar dos fóruns e Wikipédia Você tem um problema e precisa de ajuda? Podemos te ajudar de 2 formas: A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso: . O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informações que sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a 7
  • 9. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação que interesse ao grupo, favor postá-la aqui. Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico do curso. É recomendado que você faça uso do Fórum de dúvidas gerais que lhe dá recursos mais efetivos para esta prática. . O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativo para solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadas a todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podem ajudar. Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com a formalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópico é recomendável ver se a sua pergunta já foi feita por outro participante. A segunda forma se dá pelas Wikis: . Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par- ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podem ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um ótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé- dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, por pessoas de todas as partes do mundo. Acesse-a em português pelos links: • Página principal da Wiki - http://pt.wikipedia.org/wiki/ Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo! Primeiros Passos Para uma melhor aprendizagem é recomendável que você siga os seguintes passos: • Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar; • Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das ferramentas básicas do mesmo; • Entrar nas lições seguindo a seqüência descrita no Plano de Ensino; • Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais. Perfil do Tutor Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores. O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar. 8
  • 10. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e, para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor ou instrutor: • fornece explicações claras acerca do que ele espera e do estilo de classificação que irá utilizar; • gosta que lhe façam perguntas adicionais; • identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por- que motivo a classificação foi ou não foi atribuída’; • tece comentários completos e construtivos, mas de forma agradável (em contraste com um reparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, de ameaça e de nervossismo’) • dá uma ajuda complementar para encorajar um estudante em dificuldade; • esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente; • ajuda o estudante a alcançar os seus objetivos; • é flexível quando necessário; • mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso, talvez numa fase menos interessante para o tutor); • escreve todas as correções de forma legível e com um nível de pormenorização adequado; • acima de tudo, devolve os trabalhos rapidamente; 9
  • 11. Parte III GNU Free Documentation License 10
  • 12. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF (Traduzido pelo João S. O. Bueno através do CIPSGA em 2001) Esta é uma tradução não oficial da Licença de Documentação Livre GNU em Português Brasi- leiro. Ela não é publicada pela Free Software Foundation, e não se aplica legalmente a distribuição de textos que usem a GFDL - apenas o texto original em Inglês da GNU FDL faz isso. Entretanto, nós esperamos que esta tradução ajude falantes de português a entenderem melhor a GFDL. This is an unofficial translation of the GNU General Documentation License into Brazilian Por- tuguese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GFDL–only the original English text of the GFDL does that. However, we hope that this translation will help Portuguese speakers understand the GFDL better. Licença de Documentação Livre GNU Versão 1.1, Março de 2000 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA É permitido a qualquer um copiar e distribuir cópias exatas deste documento de licença, mas não é permitido alterá-lo. INTRODUÇÃO O propósito desta Licença é deixar um manual, livro-texto ou outro documento escrito "livre"no sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copiá-lo ou redistribui-lo, com ou sem modificações, comercialmente ou não. Secundariamente, esta Licença mantém para o autor e editor uma forma de ter crédito por seu trabalho, sem ser considerado responsável pelas modificações feitas por terceiros. Esta Licença é um tipo de "copyleft"("direitos revertidos"), o que significa que derivações do documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licença Pública Ge- ral (GNU GPL), que é um copyleft para software livre. Nós fizemos esta Licença para que seja usada em manuais de software livre, por que software livre precisa de documentação livre: um programa livre deve ser acompanhado de manuais que provenham as mesmas liberdades que o software possui. Mas esta Licença não está restrita a manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente do assunto ou se ele é publicado como um livro impresso. Nós recomendamos esta Licença prin- cipalmente para trabalhos cujo propósito seja de introdução ou referência. APLICABILIDADE E DEFINIÇÕES Esta Licença se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo detentor dos direitos autorais dizendo que ele pode ser distribuído sob os termos desta Licença. O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do público é um 11
  • 13. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF licenciado e é referida como "você". Uma "Versão Modificada"do Documento se refere a qualquer trabalho contendo o documento ou uma parte dele, quer copiada exatamente, quer com modificações e/ou traduzida em outra língua. Uma "Seção Secundária"é um apêndice ou uma seção inicial do Documento que trata ex- clusivamente da relação dos editores ou dos autores do Documento com o assunto geral do Documento (ou assuntos relacionados) e não contém nada que poderia ser incluído diretamente nesse assunto geral (Por exemplo, se o Documento é em parte um livro texto de matemática, a Seção Secundária pode não explicar nada de matemática). Essa relação poderia ser uma questão de ligação histórica com o assunto, ou matérias relaci- onadas, ou de posições legais, comerciais, filosóficas, éticas ou políticas relacionadas ao mesmo. As "Seções Invariantes"são certas Seções Secundárias cujos títulos são designados, como sendo de Seções Invariantes, na nota que diz que o Documento é publicado sob esta Licença. Os "Textos de Capa"são certos trechos curtos de texto que são listados, como Textos de Capa Frontal ou Textos da Quarta Capa, na nota que diz que o texto é publicado sob esta Licença. Uma cópia "Transparente"do Documento significa uma cópia que pode ser lida automatica- mente, representada num formato cuja especificação esteja disponível ao público geral, cujos conteúdos possam ser vistos e editados diretamente e sem mecanismos especiais com editores de texto genéricos ou (para imagens compostas de pixels) programas de pintura genéricos ou (para desenhos) por algum editor de desenhos grandemente difundido, e que seja passível de servir como entrada a formatadores de texto ou para tradução automática para uma variedade de formatos que sirvam de entrada para formatadores de texto. Uma cópia feita em um formato de arquivo outrossim Transparente cuja constituição tenha sido projetada para atrapalhar ou de- sencorajar modificações subsequentes pelos leitores não é Transparente. Uma cópia que não é "Transparente"é chamada de "Opaca". Exemplos de formatos que podem ser usados para cópias Transparentes incluem ASCII sim- ples sem marcações, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XML usando uma DTD disponibilizada publicamente, e HTML simples, compatível com os padrões, e projetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatos proprietários que podem ser lidos e editados apenas com processadores de texto proprietários, SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edição não estejam disponíveis para o público, e HTML gerado automaticamente por alguns editores de texto com finalidade apenas de saída. A "Página do Título"significa, para um livro impresso, a página do título propriamente dita, mais quaisquer páginas subsequentes quantas forem necessárias para conter, de forma legível, o material que esta Licença requer que apareça na página do título. Para trabalhos que não tenham uma página do título, "Página do Título"significa o texto próximo da aparição mais proe- minente do título do trabalho, precedendo o início do corpo do texto. 12
  • 14. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF FAZENDO CÓPIAS EXATAS Você pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou não comercial, desde que esta Licença, as notas de copyright, e a nota de licença dizendo que esta Licença se aplica ao documento estejam reproduzidas em todas as cópias, e que você não acres- cente nenhuma outra condição, quaisquer que sejam, às desta Licença. Você não pode usar medidas técnicas para obstruir ou controlar a leitura ou confecção de cópias subsequentes das cópias que você fizer ou distribuir. Entretanto, você pode aceitar com- pensação em troca de cópias. Se você distribuir uma quantidade grande o suficiente de cópias, você também precisa respeitar as condições da seção 3. Você também pode emprestar cópias, sob as mesmas condições colocadas acima, e também pode exibir cópias publicamente. FAZENDO CÓPIAS EM QUANTIDADE Se você publicar cópias do Documento em número maior que 100, e a nota de licença do Documento obrigar Textos de Capa, você precisará incluir as cópias em capas que tragam, clara e legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, e Textos da Quarta Capa na capa de trás. Ambas as capas também precisam identificar clara e legivelmente você como o editor dessas cópias. A capa da frente precisa apresentar o título com- pleto com todas as palavras do título igualmente proeminentes e visíveis. Você pode adicionar outros materiais às capas. Fazer cópias com modificações limitadas às capas, tanto quanto estas preservem o título do documento e satisfaçam a essas condições, pode ser tratado como cópia exata em outros aspectos. Se os textos requeridos em qualquer das capas for muito volumoso para caber de forma legível, você deve colocar os primeiros (tantos quantos couberem de forma razoável) na capa verdadeira, e continuar os outros nas páginas adjacentes. Se você publicar ou distribuir cópias Opacas do Documento em número maior que 100, você precisa ou incluir uma cópia Transparente que possa ser lida automaticamente com cada cópia Opaca, ou informar, em ou com, cada cópia Opaca a localização de uma cópia Transparente completa do Documento acessível publicamente em uma rede de computadores, à qual o público usuário de redes tenha acesso a download gratuito e anônimo utilizando padrões públicos de protocolos de rede. Se você utilizar o segundo método, você precisará tomar cuidados razoavel- mente prudentes, quando iniciar a distribuição de cópias Opacas em quantidade, para assegurar que esta cópia Transparente vai permanecer acessível desta forma na localização especificada por pelo menos um ano depois da última vez em que você distribuir uma cópia Opaca (direta- mente ou através de seus agentes ou distribuidores) daquela edição para o público. É pedido, mas não é obrigatório, que você contate os autores do Documento bem antes de redistribuir qualquer grande número de cópias, para lhes dar uma oportunidade de prover você com uma versão atualizada do Documento. 13
  • 15. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF MODIFICAÇÕES Você pode copiar e distribuir uma Versão Modificada do Documento sob as condições das se- ções 2 e 3 acima, desde que você publique a Versão Modificada estritamente sob esta Licença, com a Versão Modificada tomando o papel do Documento, de forma a licenciar a distribuição e modificação da Versão Modificada para quem quer que possua uma cópia da mesma. Além disso, você precisa fazer o seguinte na versão modificada: A. Usar na Página de Título (e nas capas, se houver alguma) um título distinto daquele do Do- cumento, e daqueles de versões anteriores (que deveriam, se houvesse algum, estarem listados na seção "Histórico do Documento"). Você pode usar o mesmo título de uma versão anterior se o editor original daquela versão lhe der permissão; B. Listar na Página de Título, como autores, uma ou mais das pessoas ou entidades responsá- veis pela autoria das modificações na Versão Modificada, conjuntamente com pelo menos cinco dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que cinco); C. Colocar na Página de Título o nome do editor da Versão Modificada, como o editor; D. Preservar todas as notas de copyright do Documento; E. Adicionar uma nota de copyright apropriada para suas próprias modificações adjacente às outras notas de copyright; F. Incluir, imediatamente depois das notas de copyright, uma nota de licença dando ao público o direito de usar a Versão Modificada sob os termos desta Licença, na forma mostrada no tópico abaixo; G. Preservar nessa nota de licença as listas completas das Seções Invariantes e os Textos de Capa requeridos dados na nota de licença do Documento; H. Incluir uma cópia inalterada desta Licença; I. Preservar a seção entitulada "Histórico", e seu título, e adicionar à mesma um item dizendo pelo menos o título, ano, novos autores e editor da Versão Modificada como dados na Página de Título. Se não houver uma sessão denominada "Histórico"no Documento, criar uma dizendo o título, ano, autores, e editor do Documento como dados em sua Página de Título, então adicionar um item descrevendo a Versão Modificada, tal como descrito na sentença anterior; J. Preservar o endereço de rede, se algum, dado no Documento para acesso público a uma cópia Transparente do Documento, e da mesma forma, as localizações de rede dadas no Docu- mento para as versões anteriores em que ele foi baseado. Elas podem ser colocadas na seção "Histórico". Você pode omitir uma localização na rede para um trabalho que tenha sido publicado pelo menos quatro anos antes do Documento, ou se o editor original da versão a que ela se refira der sua permissão; K. Em qualquer seção entitulada "Agradecimentos"ou "Dedicatórias", preservar o título da 14
  • 16. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF seção e preservar a seção em toda substância e fim de cada um dos agradecimentos de contri- buidores e/ou dedicatórias dados; L. Preservar todas as Seções Invariantes do Documento, inalteradas em seus textos ou em seus títulos. Números de seção ou equivalentes não são considerados parte dos títulos da seção; M. Apagar qualquer seção entitulada "Endossos". Tal sessão não pode ser incluída na Versão Modificada; N. Não reentitular qualquer seção existente com o título "Endossos"ou com qualquer outro título dado a uma Seção Invariante. Se a Versão Modificada incluir novas seções iniciais ou apêndices que se qualifiquem como Seções Secundárias e não contenham nenhum material copiado do Documento, você pode optar por designar alguma ou todas aquelas seções como invariantes. Para fazer isso, adicione seus títulos à lista de Seções Invariantes na nota de licença da Versão Modificada. Esses títulos preci- sam ser diferentes de qualquer outro título de seção. Você pode adicionar uma seção entitulada "Endossos", desde que ela não contenha qual- quer coisa além de endossos da sua Versão Modificada por várias pessoas ou entidades - por exemplo, declarações de revisores ou de que o texto foi aprovado por uma organização como a definição oficial de um padrão. Você pode adicionar uma passagem de até cinco palavras como um Texto de Capa da Frente , e uma passagem de até 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos de Capa na Versão Modificada. Somente uma passagem de Texto da Capa da Frente e uma de Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade. Se o Documento já incluir um texto de capa para a mesma capa, adicionado previamente por você ou por acordo feito com alguma entidade para a qual você esteja agindo, você não pode adicionar um outro; mas você pode trocar o antigo, com permissão explícita do editor anterior que adicionou a passagem antiga. O(s) autor(es) e editor(es) do Documento não dão permissão por esta Licença para que seus nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer Versão Modificada. COMBINANDO DOCUMENTOS Você pode combinar o Documento com outros documentos publicados sob esta Licença, sob os termos definidos na seção 4 acima para versões modificadas, desde que você inclua na com- binação todas as Seções Invariantes de todos os documentos originais, sem modificações, e liste todas elas como Seções Invariantes de seu trabalho combinado em sua nota de licença. O trabalho combinado precisa conter apenas uma cópia desta Licença, e Seções Invariantes Idênticas com multiplas ocorrências podem ser substituídas por apenas uma cópia. Se houver múltiplas Seções Invariantes com o mesmo nome mas com conteúdos distintos, faça o título de 15
  • 17. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF cada seção único adicionando ao final do mesmo, em parênteses, o nome do autor ou editor origianl daquela seção, se for conhecido, ou um número que seja único. Faça o mesmo ajuste nos títulos de seção na lista de Seções Invariantes nota de licença do trabalho combinado. Na combinação, você precisa combinar quaisquer seções entituladas "Histórico"dos diver- sos documentos originais, formando uma seção entitulada "Histórico"; da mesma forma combine quaisquer seções entituladas "Agradecimentos", ou "Dedicatórias". Você precisa apagar todas as seções entituladas como "Endosso". COLETÂNEAS DE DOCUMENTOS Você pode fazer uma coletânea consitindo do Documento e outros documentos publicados sob esta Licença, e substituir as cópias individuais desta Licença nos vários documentos com uma única cópia incluida na coletânea, desde que você siga as regras desta Licença para cópia exata de cada um dos Documentos em todos os outros aspectos. Você pode extrair um único documento de tal coletânea, e distribuí-lo individualmente sob esta Licença, desde que você insira uma cópia desta Licença no documento extraído, e siga esta Licença em todos os outros aspectos relacionados à cópia exata daquele documento. AGREGAÇÃO COM TRABALHOS INDEPENDENTES Uma compilação do Documento ou derivados dele com outros trabalhos ou documentos se- parados e independentes, em um volume ou mídia de distribuição, não conta como uma Ver- são Modificada do Documento, desde que nenhum copyright de compilação seja reclamado pela compilação. Tal compilação é chamada um "agregado", e esta Licença não se aplica aos outros trabalhos auto-contidos compilados junto com o Documento, só por conta de terem sido assim compilados, e eles não são trabalhos derivados do Documento. Se o requerido para o Texto de Capa na seção 3 for aplicável a essas cópias do Documento, então, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capa do Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado. Senão eles precisarão aparecer nas capas de todo o agregado. TRADUÇÃO Tradução é considerada como um tipo de modificação, então você pode distribuir traduções do Documento sob os termos da seção 4. A substituição de Seções Invariantes por traduções requer uma permissão especial dos detentores do copyright das mesmas, mas você pode incluir traduções de algumas ou de todas as Seções Invariantes em adição às versões orignais dessas Seções Invariantes. Você pode incluir uma tradução desta Licença desde que você também in- clua a versão original em Inglês desta Licença. No caso de discordância entre a tradução e a 16
  • 18. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF versão original em Inglês desta Licença, a versão original em Inglês prevalecerá. TÉRMINO Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expres- samente especificado sob esta Licença. Qualquer outra tentativa de copiar, modificar, sublicen- ciar, ou distribuir o Documento é nula, e resultará automaticamente no término de seus direitos sob esta Licença. Entretanto, terceiros que tenham recebido cópias, ou direitos de você sob esta Licença não terão suas licenças terminadas, tanto quanto esses terceiros permaneçam em total acordo com esta Licença. REVISÕES FUTURAS DESTA LICENÇA A Free Software Foundation pode publicar novas versões revisadas da Licença de Documen- tação Livre GNU de tempos em tempos. Tais novas versões serão similares em espirito à versão presente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupações. Veja http://www.gnu.org/copyleft/. A cada versão da Licença é dado um número de versão distinto. Se o Documento especificar que uma versão particular desta Licença "ou qualquer versão posterior"se aplica ao mesmo, você tem a opção de seguir os termos e condições daquela versão específica, ou de qualquer versão posterior que tenha sido publicada (não como rascunho) pela Free Software Foundation. Se o Documento não especificar um número de Versão desta Licença, você pode escolher qualquer versão já publicada (não como rascunho) pela Free Software Foundation. ADENDO: Como usar esta Licença para seus documentos Para usar esta Licença num documento que você escreveu, inclua uma cópia desta Licença no documento e ponha as seguintes notas de copyright e licenças logo após a página de título: Copyright (c) ANO SEU NOME. É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior publicada pela Free Soft- ware Foundation; com as Seções Invariantes sendo LISTE SEUS TÍTULOS, com os Textos da Capa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cópia da li- cença está inclusa na seção entitulada "Licença de Documentação Livre GNU". Se você não tiver nenhuma Seção Invariante, escreva "sem Seções Invariantes"ao invés de dizer quais são invariantes. Se você não tiver Textos de Capa da Frente, escreva "sem Textos de Capa da Frente"ao invés de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para os Textos da Quarta Capa. Se o seu documento contiver exemplos não triviais de código de programas, nós recomenda- mos a publicação desses exemplos em paralelo sob a sua escolha de licença de software livre, 17
  • 19. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF tal como a GNU General Public License, para permitir o seu uso em software livre. 18
  • 21. Capítulo 1 O que é UML A UML (Unified Modeling Language) é uma linguagem de modelagem livre que permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados. Ela foi criada para padronizar a forma de especificação de projetos de desenvolvimento de software. Utiliza-se UML para documentação, especificação, construção e visualização de sistemas. 20
  • 22. Capítulo 2 Plano de ensino 2.1 Objetivo Capacitar o usuário para o uso autônomo da linguagem UML. 2.2 Público Alvo Pessoas envolvidas em qualquer etapa de tarefas de desenvolvimento de software. 2.3 Pré-requisitos Os usuários deverão ser, necessariamente, funcionários públicos e ter conhecimentos básicos para operar um computador e de lógica de programação. 2.4 Descrição O curso será realizado na modalidade Educação à Distância e utilizará a Plataforma Moodle como ferramenta de aprendizagem. O curso tem duração de uma semana e possui um conjunto de atividades (lições, fóruns, glossários, questionários e outros) que deverão ser executadas de acordo com as instruções fornecidas. O material didático estará disponível on-line de acordo com as datas pré-estabelecidas em cada tópico. 2.5 Metodologia O curso está dividido da seguinte maneira: Duração Descrição do Módulo 1 semana Lição 1 - Introdução: Lição 2 - Conceitos Iniciais; Lição 3 - Diagramas Estruturais; Lição 4 - Diagramas Comportamentais. 21
  • 23. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Todo o material está no formato de lições, e estará disponível ao longo do curso. As lições poderão ser acessadas quantas vezes forem necessárias. Aconselhamos a leitura de "Ambien- tação do Moodle", para que você conheça o produto de Ensino à Distância, evitando dificuldades advindas do "desconhecimento"sobre o mesmo. Ao final de cada semana do curso será disponibilizada a prova referente ao módulo estudado anteriormente que também conterá perguntas sobre os textos indicados. Utilize o material de cada semana e os exemplos disponibilizados para se preparar para prova. Os instrutores estarão à sua disposição ao longo de todo curso. Qualquer dúvida deve ser disponibilizada no fórum ou enviada por e-mail. Diariamente os monitores darão respostas e esclarecimentos. 2.6 Programa O curso de UML oferecerá o seguinte conteúdo: • Conceitos iniciais; • Diagramas estruturais; • Diagramas comportamentais. 2.7 Avaliação Toda a avaliação será feita on-line. Aspectos a serem considerados na avaliação: • Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento; • Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados. Instrumentos de avaliação: • Participação ativa nas atividades programadas; • Avaliação ao final do curso; • O participante fará várias avaliações referente ao conteúdo do curso. Para a aprovação e obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo com a fórmula abaixo: • Nota Final = ((ML x 7) + (AF x 3)) / 10 = Média aritmética das lições; • AF = Avaliações. 2.8 Bibliografia • Site oficial: http://www.uml.org/ • Wikipedia: http://pt.wikipedia.org/wiki/UML 22
  • 24. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF • Manual do Umbrello UML Modeller: http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml- basics.html • http://inf.unisul.br/ osmarjr/download/ • http://www.ucb.br/ucbtic/mgcti/paginapessoalprof/Nicolas/Disciplinas/UML/node8.html • osé Carlos Macoratti: http://www.macoratti.net/vb_uml2.htm 23
  • 25. Capítulo 3 Introdução 3.1 Introdução A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira geração, ou seja, uma linguagem projetada para ser facilmente entendida por pessoas, com suporte a nomes e variáveis. A UML não é um método de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida, ou como desenhar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos. Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML. É importante distinguir entre um modelo UML e um diagrama (ou conjunto de diagramas) de UML, o último é uma representação gráfica da informação do primeiro, mas o primeiro pode existir independentemente. O XMI (XML Metadata Interchange) na sua versão corrente disponibiliza troca de modelos, mas não de diagramas. A UML (Unified Modeling Language) é uma linguagem para especificação, documentação, visualização e desenvolvimento de sistemas orientados a objetos. Sintetiza os principais méto- dos existentes, sendo considerada uma das linguagens mais expressivas para modelagem de sistemas orientados a objetos. Por meio de seus diagramas é possível representar sistemas de softwares sob diversas perspectivas de visualização. Facilita a comunicação de todas as pessoas envolvidas no processo de desenvolvimento de um sistema - gerentes, coordenadores, analistas, desenvolvedores - por apresentar um vocabulário de fácil entendimento. 3.2 História A UML tem origem na compilação das "melhores práticas de engenharia"que provaram ter sucesso na modelagem de sistemas grandes e complexos. Sucedeu aos conceitos de Booch, OMT (Rumbaugh) e OOSE (Jacobson) fundindo-os numa única linguagem de modelagem comum e largamente utilizada. A UML pretende ser a linguagem de modelagem padrão para modelar sistemas concorrentes e distribuídos. A UML ainda não é um padrão da indústria, mas esse objetivo está a tomar forma sob os aus- pícios do Object Management Group (OMG). O OMG pediu informação acerca de metodologias orientadas a objetos que pudessem criar uma linguagem rigorosa de modelização de software. Muitos líderes da indústria responderam na esperança de ajudar a criar o padrão. 24
  • 26. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Os esforços para a criação da UML tiveram início em outubro de 1994, quando Rumbaugh se juntou a Booch na Rational. Com o objetivo de unificar os métodos Booch e OMT, decorrido um ano de trabalho, foi lançado, em outubro de 1995, o esboço da versão 0.8 do Método Unificado (como era conhecido). Nesta mesma época, Jacobson se associou à Rational e o escopo do projeto da UML foi expandido para incorporar o método OOSE. Nasceu então, em junho de 1996, a versão 0.9 da UML. 25
  • 27. Capítulo 4 Conceitos Iniciais 4.1 Diagramas Um diagrama é uma representação gráfica de um sistema sob determinada visão. Existem diversos motivos para utilizá-los. Eles são úteis na documentação, tornando a manutenção mais fácil, ajudam a compreender melhor os requisitos de um sistema antes de implementá-lo, simpli- ficam o entendimento de sistemas complexos usando a técnica de dividir para conquistar. Os diversos diagramas da UML podem ser divididos em dois grandes grupos, os diagramas estruturais e os comportamentais. Nas duas lições seguintes você aprenderá um pouco sobre cada um desses diagramas. Estruturais: • Diagrama de classes; • Diagrama de componentes; • Diagrama de objetos; • Diagrama de artefatos; • Diagrama de implantação. Comportamentais: • Diagrama de casos de uso; • Diagrama de seqüência; • Diagrama de colaboração; • Diagrama de gráfico de estados; • Diagrama de atividades. 4.2 Programas Para facilitar a tarefa de modelagem é preferível que você utilize um programa específico para desenhar diagramas em UML. Existem muitos programas livres que fazem isto, entre eles estão o Jude, que pode ser baixado no endereço http://jude.change-vision.com/jude-web/download/index.html, e o Umbrello, que pode ser instalado com o comando "apt-get install umbrello". 26
  • 28. Capítulo 5 Diagramas Estruturais 5.1 Classes Na lógica de programação orientada a objetos uma classe é uma abstração de um conjunto de objetos com as mesmas características (atributos, operações, relacionamentos e semântica). Uma classe define os atributos de seus objetos e métodos. Os atributos são elementos das classes semelhantes às variáveis da lógica de programação estruturada. Cada atributo representa uma propriedade do item que está sendo modelado. Para cada atributo é definido um intervalo de valores possíveis. Por exemplo, a classe funcionário pode ter os atributos nome, endereço, telefone, número de identidade, salário, cargo. Na 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: • + Representa atributos públicos; • # Representa atributos protegidos; • - Representa atributos privados. Veja a seguir a representação de uma classe com seus atributos na linguagem UML: Além de atributos as classes têm métodos. Um método é uma operação que pode ser exe- cutada sobre os objetos de uma classe. São os métodos que executam todas as funcionalidades do programa, como fazer cálculos, exibir mensagens, gerar relatórios, etc. 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 valores devolvidos. As operações podem, assim como os Atributos, mostrar a sua visibilidade: 27
  • 29. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF • + Corresponde a operações públicas; • # Corresponde a operações protegidas; • - Corresponde a operações privadas. A próxima figura mostra a representação em UML para uma classe com as operações latir, morder e comer. 5.2 Relacionamentos Relacionamentos Além de identificar as classes do seu sistema será preciso representar os relacionamentos que existem entre elas. Há três tipos de relacionamentos: dependências, generalizações e asso- ciações. Dependência Uma dependência é um relacionamento em que um item usa dados e serviços de outro item. Representa-se uma dependência em UML com uma linha tracejada apontando do item que de- pende de alguma informação para o que a fornece. Generalização Uma generalização é um relacionamento entre ítens gerais e ítens mais específicos. Esse tipo de relacionamento indica que objetos da classe específica podem ser utilizados em qualquer lugar onde a classe geral ocorra. A classe específica, que pode ser chamada de filha, herda todas as características da classe geral, ou classe mãe. Isto é, a filha tem todos os atributos e todos os métodos da classe geral. Ela pode ter também atributos e métodos próprios, que não estão na classe mãe. Na UMl representa-se uma generalização com uma linha que aponta da filha para a mãe. 28
  • 30. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Associação Uma associação representa uma relação entre classes e dá a semântica e a estrutura comum para vários tipos de "ligações"entre os objetos. As associações são o mecanismo que permite aos objetos comunicarem uns com os outros. Descreve a ligação entre as diferentes classes (a ligação entre os objetos em si é chamada de ligação do objeto). As associações podem ter um papel que indica o objetivo da associação e podem ser uni- direcionais ou bidirecionais (indica se os dois objetos 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 objetos desse lado da associação poderão se relacionar com um objeto do outro lado. 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 (*) no lado do máximo que representa o infinito. Agregação 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 "do ’todo’ para as partes". Uma agregação diz como é que a classe que tem o papel do ’todo’ é composta (ou tem) as outras classes, que tem o papel das partes. Para as agregações, a classe que atua como o ’todo’ tem sempre uma multiplicidade de um. No UML, as agregações são representadas por uma associação com um losango do lado do ’todo’. Composição As composições são associações que representam agregações muito fortes. 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. No UML, as Composições são representadas por um losango cheio do lado do ’todo’. 29
  • 31. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF 5.3 Diagramas de classes 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 "estáticos"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 "conhecem"outras classes ou que "fazem parte"de outra classe, mas não mostram as chamadas de métodos entre elas. Diagramas de Classe podem conter diversos outros ítens além das classes: Interfaces Interfaces são classes abstratas que significam instâncias que não podem ser diretamente criadas delas. Elas podem conter operações, mas não podem conter atributos. Classes podem derivar de interfaces (através da realização de uma associação) e instâncias podem então ser feitas destes diagramas. Tipos de dados Tipos de dados são primitivos uma vez que são tipicamente construídos numa linguagem de programação. Exemplos comuns são inteiros e lógicos. Eles não podem ser relacionados à clas- ses, mas classes podem se relacionar com eles. Enumerações Enumerações são uma lista simples de valores. Um exemplo típico é uma enumeração para dias da semana. As opções de uma enumeração são chamadas Literais de Enumeração. Como tipos de dados, elas não podem ter relacionamentos para classes, mas classes podem relacionar- se com elas. Pacotes Pacotes representam um espaço de nomes numa linguagem de programação. Num diagrama eles são usados para representar partes de um sistema que contém mais de uma classe, talvez centenas de classes. Veja na figura a seguir um exemplo de um diagrama de classes: 5.4 Diagrama de Objetos Objetos Os objetos são instanciações de classes. Enquanto as classes são abstrações, os objetos existem no mundo real. Um objeto representa uma entidade que pode ser física, conceitual ou de software. É uma abstração de algo que possui fronteira definida e significado para a aplicação. 30
  • 32. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Na UML a representação de um objeto é quase igual a de uma classe. A única diferença é que o nome dos objetos aparecem sublinhados, como na figura a seguir. Se você quiser pode escrever o nome da classe depois do nome do objeto para que fique mais claro a que classe ele pertence. Diagrama de Objetos O diagrama de objetos é uma variação do diagrama de classes e utiliza quase a mesma notação. A diferença é que o diagrama de objetos mostra os objetos que foram instanciados das classes. O diagrama de objetos é como se fosse o perfil do sistema em um certo momento de sua execução. A mesma notação do diagrama de classes é utilizada com duas exceções: os objetos são escritos com seus nomes sublinhados e todas as instâncias num relacionamento são mostradas. Os diagramas de objetos não são tão importantes como os diagramas de classes, mas eles são muito úteis para exemplificar diagramas complexos de classes ajudando muito em sua compre- ensão. Diagramas de objetos também são usados como parte dos diagramas de colaboração, onde a colaboração dinâmica entre os objetos do sistema são mostrados. 5.5 Diagrama de Componentes Componente de Software é o termo utilizado para descrever o elemento de software que en- capsula uma série de funcionalidades. Um componente é uma unidade independente, que pode ser utilizado com outros componentes para formar um sistema mais complexo. Em progamação orientada a objetos um componente é o objeto que implementa uma interface e é autônomo em relação a outros componentes do sistema. Na UML existem cinco estereótipos de componentes: executável, biblioteca, tabela, documento e arquivo. A figura abaixo mostra a representação de um componente na UML: Um diagrama de componentes ilustra os componentes de software e os relacionamentos en- tre eles, representando a estrutura do código gerado. O diagrama de componentes não mostra instâncias de componentes, mostra apenas componentes como tipos. As instâncias de com- ponentes são mostradas no diagrama de execução. As dependências entre componentes são representadas por uma linha tracejada apontando para o componente que fornece a informação da qual o outro precisa, assim como no diagrama de classes. O diagrama de componentes é utilizado para: 31
  • 33. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF • Modelar os componentes do código-fonte, do código executável do software; • Organizar o código fonte, mostrando as dependências entre os diferentes arquivos fonte de modo que fique claro quais arquivos precisarão ser recompilados quando for feita uma modificação em algum deles; • Destacar a função de cada módulo para facilitar a sua reutilização; • Auxiliar no processo de engenharia reversa, por meio da organização dos módulos do sis- tema e seus relacionamentos. 5.6 Diagrama de Componentes 5.6.1 Diagrama de Artefatos Um artefato é o produto de uma ou mais atividades dentro do contexto do desenvolvimento de um sistema. Pode ser um documento de texto, código fonte, um programa executável, uma biblioteca, etc. O diagrama de artefatos mostra a organização dos artefatos do sistema e o relacionamento entre eles. Geralmente os diagramas de artefatos são utilizados para a modelagem de um dos seguintes itens: • Código fonte; • Versões executáveis; • Bancos de dados físicos; • Sistemas adaptáveis. 5.6.2 Diagrama de Implantação O diagrama de implantação mostra a organização do hardware do sistema. Ele é utilizado para a representação de sistemas distribuídos (sistemas que utilizam vários computadores ligados em rede), mostrando quais processos serão executados em cada máquina. Neste diagrama cada máquina é chamada de nó. Pode-se dizer que os diagramas de implatação são diagramas de classes que mostram os nós do sitema e os artefatos que existem neles. 32
  • 34. Capítulo 6 Diagramas Comportamentais 6.1 Atores Os atores representam os usuários do sistema, eles podem ser pessoas, dispositivo de hard- ware ou outro sistema. Por exemplo, em uma escola pode haver os atores aluno, professor, dire- tor, coordenador, representante de turma, etc. Também podem ser atores o sistema de cobranças que envia emails aos pais, o sistema de cálculo das notas, etc. Cada ator tem determinados pa- péis dentro do sistema. Atores não representam as pessoas físicas ou sistemas, mas sua regra. Isto significa que quando uma pessoa interage com o sistema de diferentes maneiras (assumindo diferentes regras) ela será representada por diversos atores. Por exemplo uma pessoa que fornece suporte ao cliente por telefone e recebe ordens do cliente para o sistema pode ser representada por um ator da "Equipe de Suporte"e um ator "Representante de Vendas" Na figura abaixo é mostrada a representação de atores na UML. 6.2 Casos de Uso Um caso de uso descreve uma funcionalidade provida pelo sistema, um grupo de atividades num sistema que produz um resultado concreto e tangível. Casos de Uso são descrições de inte- rações típicas entre os usuários de um sistema e o sistema propriamente dito. Eles representam a interface externa do sistema e especificam um conjunto de exigências do que o sistema deve fazer (lembre-se: somente o quê, não como). O conjunto de casos de uso representa todas as funções do sistema. Ele não deve fazer nada além do que é descrito nos casos de uso, ou melhor, não deve haver nenhuma funcionalidade que não é descrita pelos casos de uso. 33
  • 35. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Quando trabalhar com Casos de Uso, é importante lembrar-se de algumas regras simples: • Cada Caso de Uso está relacionado com no mínimo um ator; • Cada Caso de Uso possui um iniciador (isto é um ator); • Cada Caso de Uso liga-se a um resultado relevante (um resultado com "valor de negócio"). Casos de Uso também podem ter relacionamentos com outros Casos de Uso. Os três tipos mais comuns de relacionamento entre Casos de Uso são: • «inclui-se» que especifica que um Caso de Uso toma lugar dentro de outro Caso de Uso; • «estende» que especifica que em determinadas situações, ou em algum ponto (chamado um ponto de extensão) um Caso de Uso será estendido por outro; • Generalização especifica que um Caso de Uso herda as características do "Super"Caso de Uso, e pode sobrepor algumas delas ou adicionar novas de maneira semelhante à herança entre classes. Na UML os casos de uso são representados por elipses. Descrição do Caso de Uso Descrição do Caso de Uso são narrativas de texto do Caso de Uso. Elas usualmente tomam a forma de uma nota ou um documento que é de alguma maneira ligado ao Caso de Uso, e explana o processo ou atividades que tomarão lugar no Caso de Uso. 6.3 Diagrama de Casos de Uso O diagrama de casos de uso ilustra os comportamentos que o programa terá quando estiver pronto. Ele descreve relacionamentos e dependências entre um grupo de Caso de Uso e os Atores participantes no processo. Quando há uma comunicação entre um ator e um caso de uso ela é representada por um relacionamento. Um caso de uso pode se relacionar com vários atores. Por exemplo, o caso de uso matrícula de alunos pode ter os atores aluno e sistema de matrículas. Em UML representa- se um relacionamento com uma linha reta. Se esta linha não apontar para nenhuma direção adimite-se que a comunicação parte do ator. Se você quiser indicar um relacionamento em que a iniciativa parte do processo basta usar uma seta apontando do caso de uso para o ator. O nome dado aos casos de uso é muito importante para que a interpretação do diagrama seja fácil e rápida. É aconselhável que se utilize um padrão para estes nomes. Como casos de uso são processos de preferência use verbos para seus nomes. 34
  • 36. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF 6.4 Diagrama de Seqüência Um diagrama de seqüência mostra a seqüência dos processos (mais especificamente de men- sagens passadas entre os objetos) num sistema. Ele é usado para representar o comportamento das operações, métodos (procedimentos ou funções) entre objetos de um cenário. Um cenário é uma forma de ocorrência de um caso de uso. Este diagrama é construído a partir do Diagrama de Casos de Usos. Primeiro, se define qual o papel do sistema (Uses Case), depois é definido como o software realizará seu papel(Seqüência de operações). Um diagrama de seqüência descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de uso. Ele exibe os objetos e as mensagens passadas entre esses objetos no caso de uso. Um design pode ter uma grande quantidade de métodos em classes diferentes. Isso torna difícil determinar a seqüência global do comportamento. Esse diagrama é simples e lógico, a fim de tornar óbvios a seqüência e o fluxo de controle. Geralmente para cada caso de uso é feito um diagrama de seqüência mostrando a operação normal do sistema para este caso de uso e depois são feitos outros diagramas mostrando as seqüências alternativas e o tratamento de erros. Em Diagramas de Seqüência objetos são representados através de linhas verticais tracejadas, com o nome do Objeto no topo. O eixo do tempo é também vertical, aumentando para baixo, de modo que as mensagens são enviadas de um Objeto para outro na forma de setas com a operação e os nomes dos parâmetros. Mensagens pode ser síncronas, o tipo normal de mensagem de chamada onde o controle é passado para o objeto chamado até o método ter terminado sua execução, ou assíncronas onde o controle é passado diretamente para o objeto chamado. Mensagens síncronas possuem uma 35
  • 37. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF caixa vertical no lado do objeto chamado para mostrar o controle do fluxo do programa. A figura seguinte mostra um exemplo de um diagrama de seqüência: 6.5 Diagrama de Colaboração Diagramas de Colaboração mostram as interações que ocorrem entre os objetos participantes numa situação específica. Isto é mais ou menos a mesma informação mostrada pelos Diagra- mas de Seqüência, mas neste a ênfase é colocada em como as interações ocorrem no tempo, enquanto os Diagramas de Colaboração colocam os relacionamentos entre os objetos e sua to- pologia em destaque. Em Diagramas de Colaboração as mensagens enviadas de um objeto para outro são repre- sentadas por setas, mostrando o nome da mensagem, parâmetros, e a seqüência da mensagem. Diagramas de Colaboração são especialmente indicados para mostrar um fluxo ou situação es- pecífica do programa e são um dos melhores tipos de diagrama para rapidamente demonstrar ou explanar um processo na lógica do programa. 36
  • 38. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF 6.6 Diagrama de Gráfico de Estados Estados Estados são os blocos construídos dos Diagramas de Estado. Um Estado pertence a exata- mente uma classe e representa um resumo dos valores dos atributos que uma classe pode tomar. Um Estado UML descreve o estado interno de um objeto para uma classe em particular Observe que nem toda mudança em um dos atributos de um objeto pode ser representada por um Estado, mas somente aquelas mudanças que podem afetar significativamente o trabalho do objeto Existem dois tipos especiais de Estados: Inicial e Final. Eles são especiais porque nenhum evento pode fazer com que um Objeto retorne para seu estado Inicial, e da mesma maneira ne- nhum evento pode tirar um Objeto de seu estado Final uma vez que ele já o tenha alcançado. Diagrama de Estados Diagramas de Estado mostram os diferentes estados de um Objeto durante sua vida, e o estímulo que faz com que o Objeto mude seu estado. Diagramas de Estado vêem Objetos como máquinas de estado ou automatismos finitos que podem ser de um conjunto de estados finitos e que podem mudar seu estado através de um conjunto finito de estímulos. Por exemplo um tipo de Objeto ServidorRede pode estar em um dos seguintes estados durante sua vida: • Pronto; • Ouvindo; • Trabalhando; 37
  • 39. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF • Parado. e os eventos que podem fazer com que o Objeto mude de estado são: • Objeto é criado; • Objeto recebe mensagem ouvir; • Um Cliente solicita uma conexão através da rede; • Um Cliente termina um pedido; • O pedido é executado e terminado; • Objeto recebe mensagem parar; • etc. 6.7 Diagramas de atividades Atividade Uma Atividade é um passo simples num processo. Uma Atividade é um estado no sistema com atividade interna e, pelo menos, uma transição de saída. Atividades podem também ter mais de uma transição de saída se elas possuírem condições diferentes. 38
  • 40. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Atividades podem formar hierarquias, isto significa que uma Atividade pode ser composta por diversas Atividades em "detalhe", na qual as transições de entrada e saída devem corresponder às transições de entrada e saída do diagrama de detalhe. Diagrama de Atividade O Diagrama de Atividade descreve a seqüência de atividades num sistema com a ajuda as Atividades. Diagramas de Atividades são uma forma especial de Diagramas de Estado, que somente (ou principalmente) contêm Atividades. Diagramas de Atividades são similares aos Diagramas de Fluxo de procedimentos, com a diferença de que todas as Atividades são claramente anexas aos Objetos. Diagramas de Atividade são sempre associados a um Classe, uma Operação ou um Caso de Uso. Diagramas de Atividades suportam Atividades seqüenciais bem como paralelas. A execução paralela é representada pelos ícones Forquilha/Esperar, e para as Atividades executadas em paralelo, não é importante a ordem na qual elas se executam (elas podem ser executadas ao mesmo tempo ou uma após a outra). 39