Beruflich Dokumente
Kultur Dokumente
I
Sumário
1. Introdução...............................................................................1-1
Objetivos.................................................................................................................................1-2
Conectando os estudos.....................................................................................................1-3
Desenvolvimento de software orientado a objetos................................................1-5
UML – A unificação dos métodos e criação de um novo padrão.......................1-6
Uso da UML............................................................................................................................1-8
Fases do Desenvolvimento de um Sistema...............................................................1-9
Análise de Requisitos.......................................................................................................1-10
Análise...................................................................................................................................1-11
Design (Projeto).................................................................................................................1-12
Programação.......................................................................................................................1-13
Testes.....................................................................................................................................1-14
Exercícios..............................................................................................................................1-15
3. Diagrama de Atividades............................................................3-1
Objetivos.................................................................................................................................3-2
Definição do diagrama......................................................................................................3-3
Elementos do diagrama....................................................................................................3-4
Atividade.................................................................................................................................3-5
Início do diagrama..............................................................................................................3-6
Fim do diagrama..................................................................................................................3-7
Transições...............................................................................................................................3-8
Desvios....................................................................................................................................3-9
Separação e União............................................................................................................3-12
Estado de subatividade...................................................................................................3-15
Concorrência Dinâmica...................................................................................................3-16
Raias (Swimlanes).............................................................................................................3-17
Quando Utilizar Diagramas de Atividades...............................................................3-18
Exercícios..............................................................................................................................3-20
4. Diagrama de Classes................................................................4-1
II
Objetivos.................................................................................................................................4-2
Introdução..............................................................................................................................4-3
Perspectivas..........................................................................................................................4-5
Criando Diagramas de Classe.........................................................................................4-7
Compartimento do Nome da Classe..........................................................................4-10
Atributos................................................................................................................................4-11
Operações............................................................................................................................4-15
Relacionamentos...............................................................................................................4-18
Associação...........................................................................................................................4-19
Nome da associação........................................................................................................4-20
Multiplicidade......................................................................................................................4-21
Papel (role)...........................................................................................................................4-22
Navegabilidade..................................................................................................................4-23
Herança/Generalização...................................................................................................4-24
Dependência.......................................................................................................................4-28
Agregação............................................................................................................................4-29
Composição.........................................................................................................................4-31
Pacotes de classes e colaborações no sistema.....................................................4-32
Pacotes..................................................................................................................................4-33
Colaborações.......................................................................................................................4-36
Quando Utilizar Diagramas de Pacotes e Colaborações.....................................4-37
Multiplicidade......................................................................................................................4-38
Escopo...................................................................................................................................4-40
Classes de Associação.....................................................................................................4-42
Associação Xor (ou exclusiva)......................................................................................4-44
Estereótipo...........................................................................................................................4-45
Interfaces e Classes Abstratas.....................................................................................4-47
Objetos de Referência e Objetos de Valor...............................................................4-50
Objetos de referência......................................................................................................4-51
Objeto de Valor...................................................................................................................4-52
Coleções para Pontas de Associações de Valores Múltiplos.............................4-53
Frozen....................................................................................................................................4-54
Visibilidade...........................................................................................................................4-55
Quando Utilizar Diagramas de Classes.....................................................................4-58
Exercícios..............................................................................................................................4-59
5. Diagrama de Estados................................................................5-1
Objetivos.................................................................................................................................5-2
O que é um Diagrama de Estados?..............................................................................5-3
Estado......................................................................................................................................5-4
Estado Inicial e Estado Final............................................................................................5-7
Transições...............................................................................................................................5-8
Estado composto...............................................................................................................5-11
Quando Utilizar Diagramas de Estados....................................................................5-12
Exercícios..............................................................................................................................5-13
6. Diagrama de Objetos................................................................6-1
Objetivos.................................................................................................................................6-2
O que é um diagrama de objetos?................................................................................6-3
Criando diagramas de objetos.......................................................................................6-4
III
Quando utilizar diagrama de objetos?........................................................................6-8
Exercícios................................................................................................................................6-9
7. Diagrama de Interação.............................................................7-1
Objetivos.................................................................................................................................7-2
O que é um diagrama de Interação?...........................................................................7-3
Diagrama de seqüências..................................................................................................7-5
Diagrama de colaboração..............................................................................................7-11
Modelando diagramas de seqüências.......................................................................7-14
Quando Utilizar Diagramas de Interação.................................................................7-17
Exercícios..............................................................................................................................7-18
8. Diagramas Físicos....................................................................8-1
Objetivos.................................................................................................................................8-2
O que são diagramas físicos?.........................................................................................8-3
Diagrama de Componentes.............................................................................................8-4
Componente..........................................................................................................................8-5
Diagrama de Implantação................................................................................................8-6
Nó..............................................................................................................................................8-7
Combinando Componentes com Diagramas de Utilização.................................8-8
Quando Utilizar Diagramas Físicos.............................................................................8-10
Exercícios..............................................................................................................................8-11
IV
UML
1
2
UML: Unified Modeling Language
1. Introdução
1
Introdução
Objetivos
Conhecer a UML
Conhecer os principais métodos que originaram a UML
Descrever onde pode ser utilizada a UML
Conhecer as fases de um processo de construção de software
2
Introdução
Conectando os estudos
UML foi desenvolvida por Grady Booch, James Rumbaugh e Ivar Jacobson
que são conhecidos como "os três amigos". Eles possuem um extenso
conhecimento na área de modelagem orientado a objetos já que as três mais
conceituadas metodologias de modelagem orientada a objetos foram eles que
desenvolveram e a UML é a junção do que havia de melhor nestas três
metodologias adicionado novos conceitos e visões da linguagem. Veremos
características de cada uma destas metodologias no desenvolver deste curso.
4
Introdução
5
Introdução
7
Introdução
Uso da UML
8
Introdução
9
Introdução
10
Introdução
Análise de Requisitos
11
Introdução
Análise
12
Introdução
Design (Projeto)
13
Introdução
Programação
14
Introdução
Testes
15
Introdução
Exercícios
16
Introdução
17
UML: Unified Modeling Language
1
Diagrama de Use Case
Objetivos
Entender o diagrama de use case
Conhecer os elementos que fazem parte deste diagrama
Aprender a modelar um diagrama de use case para um sistema
Conhecer os tipos de relacionamentos possíveis entre os elementos
do use case
Saber quando e como utilizar use case
2
Diagrama de Use Case
Pois é com essa expectativa humana que temos que lidar. Temos que
entender o que o usuário quer, e muito mais importante, demonstrar que
realmente entendemos seus desejos. A grande pedra do desenvolvimento de
sistemas começa exatamente neste ponto. Como era difícil validar com o
usuário o que havia sido levantado! Como era difícil transportar para modelos
e códigos aquelas dezenas de linhas em linguagem natural! Precisamos
documentar todos os desejos dos usuários para depois podermos tentar
realizá-los.
3
Diagrama de Use Case
O Levantamento de Requisitos
4
Diagrama de Use Case
Desenvolvedor:
Usuario:
O que 6 PV e FP?
Que tipos de clientes podem receber descontos?
Como seria feita esta autorização de desconto e por quem?
Que quantidade de produtos deve aparecer no relatório dos que mais
venderam?
A estatística leva em conta que período (semanal, quinzenal, mensal,
etc)?
Quanto tempo significa "de tempos em tempos"?
Quais pedidos precisam ser controlados: os dos clientes ou os feitos aos
fornecedores?
5
Diagrama de Use Case
O Use Case
Cenário Principal
1ª) Se o sistema não conseguir ler os dados do cartão magnético, tentar nova
leitura por, no máximo, mais duas vezes. Caso persista o problema, encerrar o
caso de uso (ao dizermos que haverá o encerramento do caso de uso. Estamos
afirmando que a rotina não pode prosseguir pelo motivo relatado. Logicamente
que numa implementação, o fluxo retornará ao seu início (nesse caso, a leitura
de um próximo cartão magnético).
3ª) Se a senha digitada pelo correntista não for igual a senha cadastrada no
sistema, informar ao mesmo e solicitar nova digitação. Esse processo pode ser
repetido por no máximo três tentativas (incluindo a primeira). Após a terceira
tentativa, a conta do usuário deverá ser bloqueada e o caso de uso encerrado.
Include Bloquear Conta (o include corresponde a um dos tipos de
relacionamentos entre os diagramas de caso de uso e será explocado mais
adiante nesta apostila).
7
Diagrama de Use Case
Um caso de uso é representado por uma elipse contendo o seu nome. O nome
do caso de uso também pode ser colocado abaixo da elipse, que pode conter
ou não compartimentos referentes a pontos de extensão (estes serão
apresentados mais tarde no curso).
8
Diagrama de Use Case
9
Diagrama de Use Case
Atores
10
Diagrama de Use Case
Alguns casos de uso não têm ligações claras com atores específicos.
Considere uma empresa de serviço público. Evidentemente, um dos seus casos
de uso é “Enviar Contas”. Entretanto, não é fácil identificar um ator associado.
Nenhum papel de usuário em especial necessita uma conta. A conta é enviada
para o cliente, mas ele não se importaria se isso não acontecesse. O melhor
palpite para ator aqui é o Departamento de Cobrança, no sentido que este
obtém valor deste caso de uso. Mas o Departamento de Cobranca, não está,
geralmente, envolvido neste caso de uso.
11
Diagrama de Use Case
Esteja ciente de que alguns casos de uso não aparecem como resultado
do processo de considerá-los para cada ator. Se isso acontecer, não se
preocupe muito. O importante é compreender casos de uso e os objetivos dos
usuários que eles atingem.
Uma boa fonte para identificar os casos de uso são os eventos externos.
Considere todos os eventos do mundo externo para os quais você quer reagir.
Um dado evento pode causar uma reação no sistema que não envolve
usuários, ou pode causar principalmente reação dos usuários. A identificação
dos acontecimentos para os quais o sistema necessita reagir vai lhe ajudar a
identificar os casos de uso.
12
Diagrama de Use Case
Veja os exemplos.
Essa pequena descrição nos diz que existe uma lista contendo os
produtos disponíveis para esta operação. Todavia, a descrição não diz se essa
lista será representada por um grid, uma listbox, uma combobox ou algum
outro tipo de componentes. Não represente nas alternativas validações que
por default já são feitas em qualquer sistema.
Cenários Alternativos
13
Diagrama de Use Case
14
Diagrama de Use Case
15
Diagrama de Use Case
Associação
16
Diagrama de Use Case
Generalização
Por exemplo: num caso de uso no qual C2 herda de C1, significa dizer
que temos C1como um caso de uso mais genérico e C2 mais específico.
17
Diagrama de Use Case
18
Diagrama de Use Case
Extensão (extends)
Por exemplo:
Cenário Principal
...
5. Escolher forma de pagamento.
6. Se cliente VIP, calcular desconto especial. Extend (desconto ClienteVip).
...
19
Diagrama de Use Case
20
Diagrama de Use Case
Inclusão (Include)
Por exemplo:
Cenário Principal
21
Diagrama de Use Case
22
Diagrama de Use Case
23
Diagrama de Use Case
24
Diagrama de Use Case
pacote:: elemento
25
Diagrama de Use Case
Por exemplo:
26
Diagrama de Use Case
Muitas vezes nos perguntamos quando usar isto tudo, inicialmente pode
parecer um pouco burocrátivo e não necessário este processo todo, mas
veremos ao passar do tempo que ele é fundamental para uma boa análise.
A maioria dos seus casos de uso será gerada durante está fase do
projeto, mas você descobrirá mais a medida que avança. Fique alerta a eles o
tempo todo. Cada caso de uso é um requisito em potencial, e até que você
tenha capturado um requisito, você não pode planejar como lidar com ele.
Quantos casos de uso você deve ter? Não existe uma resposta exata
para isto. Depende do tamanho do sistema e também dependerá da equipe e
tipo de sistema que está sendo feito. Lembre-se que você terá vários cenários
e que em cada cenário podem existir vários casos de uso e um caso de uso
pode ter casos alternativos. Com isto você já viu que o número de casos de
uso será medido pelo seu bom senso de modelagem e que você deverá fazer
quantos achar necessário para levantar todos os requisitos. Não tem um
número e nem uma fórmula para calcular isto.
27
Diagrama de Use Case
Atores:
- Gerente
28
Diagrama de Use Case
Atores:
- Instrutor
29
Diagrama de Use Case
Exercícios
Descrição do sistema:
Objetivo:
Perfis de usuários:
Telas do sistema:
Descrição da necessidade:
31
Diagrama de Use Case
32
Diagrama de Use Case
33
Diagrama de Use Case
34
UML: Unified Modeling Language
3. Diagrama de Atividades
1
Diagrama de Atividades
Objetivos
Compreender o diagrama de atividades
Conhecer os elementos que fazem parte deste diagrama
Aprender como desenvolver um diagrama de atividades
Saber quando utilizar o diagrama de atividades
2
Diagrama de Atividades
Definição do diagrama
3
Diagrama de Atividades
Elementos do diagrama
4
Diagrama de Atividades
Atividade
5
Diagrama de Atividades
Início do diagrama
6
Diagrama de Atividades
Fim do diagrama
7
Diagrama de Atividades
Transições
8
Diagrama de Atividades
Desvios
9
Diagrama de Atividades
10
Diagrama de Atividades
11
Diagrama de Atividades
Separação e União
exemplo dado acima isto não é possível. Não podemos carregar e ao mesmo
tempo exibir as informações.
13
Diagrama de Atividades
Figura 3-9: Representação de uma thread que pode não ser realizada
14
Diagrama de Atividades
Estado de subatividade
15
Diagrama de Atividades
Concorrência Dinâmica
16
Diagrama de Atividades
Raias (Swimlanes)
Raias são uma solução para isso. Para usar raias, você deve organizar
seus diagramas de atividades em zonas verticais separadas por linhas. Cada
zona representa as responsabilidades de uma classe especifica ou, um
departamento específico.
17
Diagrama de Atividades
Você pode definir uma ligação para um objeto rotulando uma atividade
com um nome de objeto ou usando raias que dividem um diagrama de
atividades em base em responsabilidades, mas isso não tem a clareza simples
de diagramas de interação (estudaremos estes diagramas mais adiante no
curso). Por esta razão, algumas pessoas sentem que diagramas de atividades
não são orientados a objetos e, portanto, são maus.
18
Diagrama de Atividades
19
Diagrama de Atividades
Exercícios
20
Diagrama de Atividades
21
Diagrama de Atividades
22
UML: Unified Modeling Language
4. Diagrama de Classes
1
Diagrama de Classes
Objetivos
Conhecer os elementos que fazem parte deste diagrama
Estudar os tipos de associações que fazem parte deste diagrama
Saber utilizar o escopo e visibilidade para os atributos e operações
Aprender quando se deve utilizar este diagrama
Modelar um diagrama de classes
2
Diagrama de Classes
Introdução
3
Diagrama de Classes
4
Diagrama de Classes
5
Diagrama de Classes
Perspectivas
7
Diagrama de Classes
8
Diagrama de Classes
10
Diagrama de Classes
11
Diagrama de Classes
Atributos
Por exemplo:
Por exemplo:
editora: Editora
12
Diagrama de Classes
Por exemplo:
O primeiro exemplo nos diz que uma determinada classe não tem valor
para o atributo telefone ou tem até cinco valores. No segundo exemplo, temos
que uma determinada classe tem de um a três filhos.
que indicaria que um piloto pode nunca ter sido campeão ou já ter sido
campeão de vários (*) campeonatos, sendo que essa lista de anos deve
aparecer ordenada cronologicamente.
Por exemplo:
13
Diagrama de Classes
Por exemplo:
Por exemplo:
14
Diagrama de Classes
15
Diagrama de Classes
Operações
Por exemplo:
Por exemplo:
16
Diagrama de Classes
{concorrência = nome}
17
Diagrama de Classes
18
Diagrama de Classes
Relacionamentos
19
Diagrama de Classes
Associação
20
Diagrama de Classes
Nome da associação
.
Figura 4-10: Associação com nome
21
Diagrama de Classes
Multiplicidade
22
Diagrama de Classes
Papel (role)
23
Diagrama de Classes
Navegabilidade
24
Diagrama de Classes
Herança/Generalização
25
Diagrama de Classes
Superclasse: Pessoa
Subclasses: Física e Jurídica
Superclasse: Funcionário
Subclasses: Vendedor / Auxiliar Administrativo / Gerente
26
Diagrama de Classes
Superclasse: Animal
Subclasses: Mamífero / Ave
Superclasse: Pessoa
Subclasses: Aluno e Professor
27
Diagrama de Classes
28
Diagrama de Classes
Dependência
29
Diagrama de Classes
30
Diagrama de Classes
Agregação
Veja que a figura tem um significado que para ser completo está
dependente de outro elemento. É como um verbo transitivo direto ou indireto.
Se eu digo "você acorda", estou me referindo a um verbo intransitivo (que não
pede complemento). Quem acorda, acorda e ponto final. Já se digo: "eu
chamo", fica faltando alguma coisa. Quem chama, chama alguém.
Paralelamente, uma imagem é uma imagem de alguém (ou algo). A página
Web representa o todo enquanto que a imagem representa a parte. Portanto,
nesse caso, podemos modelar o relacionamento entre Página Web e Imagem
como uma agregação. Lembrem-se sempre de que o contexto interfere
diretamente no tipo de relacionamento. Uma imagem não fará sempre parte
de uma agregação - depende do contexto no qual ela está envolvida.
31
Diagrama de Classes
32
Diagrama de Classes
Composição
33
Diagrama de Classes
34
Diagrama de Classes
Pacotes
35
Diagrama de Classes
36
Diagrama de Classes
37
Diagrama de Classes
Colaborações
38
Diagrama de Classes
39
Diagrama de Classes
Multiplicidade
Por exemplo:
Numa classe Pessoa com o atributo cônjuge podemos afirmar (na nossa
atual legislação) que sua multiplicidade é de no mínimo zero e no
máximo um cônjuge (levando em conta o cônjuge atual).
Considerando uma classe Curso que se relacione com uma classe Aluno,
podemos afirmar que para cada instância de Curso há um
relacionamento com no mínimo zero e no máximo vários alunos; e para
cada instância de Aluno há um relacionamento com no mínimo zero (a-
luno está com a matrícula trancada) e no máximo vários cursos.
limite-inferior.. limite-superior
Exemplos de multiplicidades:
41
Diagrama de Classes
Escopo
objetoP.salario e objetoA.salario
42
Diagrama de Classes
Funcionario.pisoSalarial
Funcionario.emitirFolhaPagamento()
43
Diagrama de Classes
Classes de Associação
Você pode ver pelo diagrama que uma Pessoa pode trabalhar para uma
única Companhia. Suponhamos que necessitamos manter informação sobre o
período de tempo que cada funcionário trabalha para cada Companhia.
44
Diagrama de Classes
Figura 4-29: Representação de uma classe de associação com emprego sendo classe plena
45
Diagrama de Classes
Uma restrição Xor (ou exclusiva) indica que, dentre as várias associações
envolvidas nessa restrição, somente uma delas pode ocorrer por vez.
46
Diagrama de Classes
Estereótipo
Notas
47
Diagrama de Classes
48
Diagrama de Classes
49
Diagrama de Classes
Uma interface é muito parecida com uma classe abstrata, porém ela se
difere por ser uma estrutura voltada para a representação de
comportamentos, onde os comportamentos serão as operações. Uma interface
não possui operações com implementação, elas tem somente a assinatura das
mesmas declaradas. A interface será implementada por classes e a relação
entre elas será conhecida como realização. Veja abaixo a representação de
uma interface com algumas operações:
50
Diagrama de Classes
51
Diagrama de Classes
Uma das coisas comuns dita sobre objetos é que eles têm identidade.
Isso é verdade, mas não é tão simples assim. Na prática, você percebe que a
identidade é importante para objetos de referência, mas não tão importante
para objetos de valor.
52
Diagrama de Classes
Objetos de referência
53
Diagrama de Classes
Objeto de Valor
São coisas como datas, ou tipos primitivos das linguagens. Você tem,
geralmente, múltiplos objetos de valor representando o mesmo objeto do
mundo real. Por exemplo, é normal ter centenas de objetos que designam 29-
Jul-2004. Estas são todas cópias intercambiáveis. Novas datas são
freqüentemente criadas e destruídas.
Se você tem duas datas e quer ver se elas são a mesma, você não
examina as suas identidades, mas sim os valores que elas armazenam. Isso
significa, geralmente, que você tem que escrever um operador de teste de
igualdade, que para datas fará testes no ano, mês e dia (ou qualquer outra
forma de representação interna). Normalmente, cada objeto que faz referência
a 29-Jul-2004 tem o seu próprio objeto data dedicado a isso, mas você também
pode compartilhar datas.
54
Diagrama de Classes
55
Diagrama de Classes
Frozen
56
Diagrama de Classes
Visibilidade
Considere uma classe Cliente que tem uma subclasse Cliente Pessoa-
Física. Considere também o objeto Martin, que é uma instância de Cliente
Pessoa-Física. Martin pode usar qualquer membro público de qualquer objeto
no sistema. Martin também pode usar qualquer membro particular da classe
Cliente Pessoa-Física. Martin não pode usar membros particulares definidos
dentro de Clientes; pode, entretanto, usar membros protegidos de Cliente e
membros protegidos de Cliente Pessoa-Física.
57
Diagrama de Classes
Vamos voltar para C++. Digamos que eu tenha uma outra instância de
Cliente Pessoa-Física chamada Kendall. Kendall pode acessar qualquer membro
de Martin que tenha sido definido como parte cia classe Cliente Pessoa-Física,
seja público, particular ou protegido. Kendall também pode acessar qualquer
membro público ou protegido de Martin que tenha sido definido em Cliente.
Entretanto, em Smalltalk, Kendall não pode acessar as variáveis de instância
particulares de Martin - somente as operações públicas de Martin.
Permanecendo em nosso tema, para garantir que as coisas não são tão
simples, Java redefine levemente visibilidade protegida. Em Java, um membro
protegido pode ser acessado por subclasses, mas também por qualquer outra
classe do mesmo pacote da classe proprietária. Isso significa que, em Java,
protegido é mais público que pacote. Java também permite que classes sejam
marcadas: como públicas ou de pacote. Os membros públicos de uma classe
pública podem ser usados por qualquer classe que importa o pacote em que a
classe pertence. Uma classe de pacote pode ser usada somente por outras
classes do mesmo pacote.
58
Diagrama de Classes
59
Diagrama de Classes
Não tente utilizar todas as notações que você dispõe. Comece com os
recursos mais simples: classes, associações, atributos, generalização e
restrições. Introduza outras notações mais avançadas vistas neste
capítulo somente se necessitar.
Não desenhe modelos para tudo; em vez disso, concentre-se nas áreas
principais. É melhor ter poucos diagramas que você usa e mantém
atualizados do que ter muitos modelos esquecidos e obsoletos.
O maior perigo com diagrama de classes é que você pode ficar detido
em detalhes de implementação muito facilmente. Para combater isso,
concentre-se nas perspectivas conceituais e de especificação.
60
Diagrama de Classes
Exercícios
61
Diagrama de Classes
62
UML: Unified Modeling Language
5. Diagrama de Estados
1
Diagrama de Estados
Objetivos
Aprender o que é e como pode ser utilizado diagramas de estados
Conhecer os elementos que fazem parte deste tipo de diagrama
Saber quando devemos utilizar diagramas de classes
2
Diagrama de Estados
3
Diagrama de Estados
Estado
4
Diagrama de Estados
Cada nome de evento pode aparecer mais de uma vez por estado se as
condições de guarda forem diferentes. Os parâmetros do evento e as
condições de guarda são opcionais.
Vou utilizar em seguida um exemplo do nosso mundo real para que vocês
possam abstrair mais facilmente o conceito de estados.
podemos considerar nosso bebé como uma pequenina criança. Nesse período
no "estado de criança", recebemos muitos estímulos e executamos muitas
ações. Mas pelo foco que quero dar nesse primeiro exemplo, coloquei como
atividade principal: brincar. Até que chega a dita puberdade, que transforma
nossas crianças em adolescentes. Na saída do estado de criança, algumas
atitudes são tomadas: se criança do sexo feminino, abandonar as bonecas; se
do sexo masculino, abandonar os carrinhos (ou as “bolinhas de gude”).
6
Diagrama de Estados
7
Diagrama de Estados
Transições
Exemplo: ChecarEstoque(produto)
8
Diagrama de Estados
Quando uma condição (descrita por uma expressão booleana) tem seu
valor modificado de falso para verdadeiro;
Quando há recepção de um sinal explícito de um objeto para outro;
Quando há recepção da chamada de uma operação implementada como
uma transição por um objeto;
Quando a passagem de um período de tempo específico depois da ocor-
rência de outro evento representa um evento de tempo. Pode ser repre-
sentado pela palavra chave after seguida pela expressão a ser avaliada
(ex: after 10 minutos). Outra palavra-chave que pode ser usada é when
(ex: when (dataAdmissao >= 01/01/1987)).
9
Diagrama de Estados
10
Diagrama de Estados
Estado composto
11
Diagrama de Estados
12
Diagrama de Estados
Exercícios
13
Diagrama de Estados
14
UML: Unified Modeling Language
6. Diagrama de Objetos
1
Diagrama de Objetos
Objetivos
Conhecer o diagrama de objetos
Reconhecer os elementos do diagrama de objetos
Montar um diagrama de objetos
Saber quando utilizar este tipo de diagrama
2
Diagrama de Objetos
3
Diagrama de Objetos
4
Diagrama de Objetos
O tipo, se for citado, deve ser o mesmo definido na classe. Desta forma,
ele pode ser omitido sem prejuízo da compreensão do diagrama.
6
Diagrama de Objetos
7
Diagrama de Objetos
8
Diagrama de Objetos
9
Diagrama de Objetos
Exercícios
10
Diagrama de Objetos
11
UML: Unified Modeling Language
7. Diagrama de Interação
1
Diagrama de Interação
Objetivos
Conhecer o diagrama de interação
Reconhecer os elementos do diagrama de interação
Estudar diagramas de colaboração
Estudar diagramas de seqüência
Saber quando utilizar estes diagramas
2
Diagrama de Interação
diagramas de seqüências
diagramas de colaboração
4
Diagrama de Interação
Diagrama de seqüências
6
Diagrama de Interação
7
Diagrama de Interação
8
Diagrama de Interação
9
Diagrama de Interação
[instrutorOk] agendarCurso()
10
Diagrama de Interação
11
Diagrama de Interação
Diagrama de colaboração
12
Diagrama de Interação
13
Diagrama de Interação
14
Diagrama de Interação
15
Diagrama de Interação
Registrar vendas
Cenário Alternativo
Venda já cadastrada
2a. Se o número da venda já estiver cadastrado, informar ao usuário, mostrar
as informações da venda na tela e entrar em modo de alteração dos dados.
16
Diagrama de Interação
Figura 6-16: Exemplo de um diagrama de seqüências a partir de uma descrição de caso de uso
17
Diagrama de Interação
18
Diagrama de Interação
Exercícios
19
Diagrama de Interação
20
Diagrama de Interação
21
UML: Unified Modeling Language
8. Diagramas Físicos
1
Diagramas Físicos
Objetivos
Conhecer os diagramas físicos de componentes e implantação
Reconhecer os elementos destes diagramas
Saber quando utilizar estes diagramas
2
Diagramas Físicos
Diagrama de Componentes
Diagrama de Implantação
Vamos ver agora com mais detalhes estes diagramas, começaremos pelo
diagrama de componentes.
3
Diagramas Físicos
Diagrama de Componentes
4
Diagramas Físicos
Componente
5
Diagramas Físicos
Diagrama de Implantação
6
Diagramas Físicos
Nó
Nome : tipo-do-nó
Nós podem ser conectados por associações para outros nós, por meio de
um caminho de comunicação. A associação pode ter um estereótipo para
indicar a natureza do caminho de comunicação (por exemplo: o tipo de canal
ou rede). Veja abaixo a representação gráfica:
7
Diagramas Físicos
8
Diagramas Físicos
Benefícios: Pode funcionar mesmo que não haja rede; Emissão de relatórios
mais fácil.
9
Diagramas Físicos
10
Diagramas Físicos
Exercícios
11
Diagramas Físicos
12
UML: Unified Modeling Language
9. Apêndice 1: Extensibilidade
da UML
1
Apêndice: Extensibilidade da UML
Estereótipos
Restrições
2
Apêndice: Extensibilidade da UML
Estereótipos
<<access>>
Especifica que o conteúdo público do pacote de destino está acessível ao
espaço do nome do pacote de origem.
<<bind>>
Especifica que a origem instância o template de destino, utilizando os
parâmetros reais dados.
<<call>>
Especifica que a operação de origem invoca a operação de destino.
<<derived>>
Especifica que o elemento-origem é derivado do elemento-destino. Isso
significa que o elemento-origem não é uma instância do elemento-destino,
mas é uma instância de um outro elemento que é um subtipo ou uma
subclasse do elemento-destino.
<<extend>>
Especifica que um caso de uso tem um comportamento estendido a partir de
um caso de uso-base.
<<friend>>
Especifica que o elemento-origem tem visibilidade especial no elemento
destino.
3
Apêndice: Extensibilidade da UML
<<import>>
Especifica que o conteúdo público do pacote-destino pode ser recebido e
acessado por um pacote-origem.
<<include>>
Especifica que comportamentos comuns a mais de um caso de uso devem ser
captura em outro caso de uso que será utilizado pêlos casos de uso que lhe
deram origem.
<<instanceof>>
Especifica que o objeto de origem é uma instância do classificador de destino.
<<instantiate>>
Especifica que as operações na classe de origem criam instâncias da classe de
destino.
<<refine>>
Especifica que a origem é um grau mais alto de abstração que o destino.
<<send>>
Especifica que a operação de origem envia o evento destino.
<<trace>>
Especifica que o destino é um antecessor histórico da origem.
<<actor>>
Especifica um elemento que interage externamente com o sistema.
<<exception>>
Especifica um evento que pode ser ativado ou capturado por uma operação de
classe.
<<implementationClass>>
Especifica a implementação de uma classe em uma linguagem de
programação.
<<interface>>
Coleção de operações que pode ser utilizado para definir os serviços que uma
classe pode oferecer a outras.
<<powertype>>
Especifica um classificador cujas instâncias de suas classes estão envolvidas
em um relacionamento de generalização.
4
Apêndice: Extensibilidade da UML
<<process>>
Especifica um classificador cujas instâncias representam um fluxo pesado.
<<signal>>
Especifica um estímulo assíncrono comunicado entre instâncias.
<<stereotype>>
Especifica que o classificador é um estereótipo que pode ser aplicado a outros
elementos.
<<thread>>
Especifica um classificador cujas instâncias representam um fluxo leve.
<<type>>
Especifica uma classe abstraia que é utilizada somente para determinar a
estrutura e o comportamento de um conjunto de objetos.
<<utility>>
Especifica classes cujos atributos e operações são todos escopo de classes.
<<becomes>>
Especifica que o objeto-destino é o mesmo objeto que o de origem, mas em
um ponto adiante no tempo e com possíveis valores, estados ou papéis
diferentes.
<<copy>>
Especifica que o objeto de destino é uma cópia exata do objeto-origem, mas é
independente.
<<create>>
Especifica que o objeto-destino é criado pelo evento ou pela mensagem
enviada pelo objeto-origem.
<<destroy>>
Especifica que o objeto-destino é destruído pelo evento ou pela mensagem
enviada pelo objeto-origem.
<<table>>
Especifica um componente que representa uma tabela de banco de dados no
sistema.
5
Apêndice: Extensibilidade da UML
<<documents>>
Especifica um componente que representa um documento do sistema.
<<executable>>
Especifica um componente que representa um componente que poderá ser
executado no sistema.
<<file>>
Especifica um componente que representa códigos-fonte ou dados.
<<library>>
Especifica um componente que representa uma biblioteca de objetos.
<<implementation>>
Especifica que o filho herda a implementação do pai, mas não a torna pública,
nem oferece suporte para suas interfaces, violando dessa forma a
característica de permitir substituições.
<<invariant>>
Especifica uma restrição que sempre precisa ser mantida para o elemento que
está associado.
<<precondition>>
Especifica uma condição que deve ser verdadeira antes da invocação de uma
operação.
<<poscondition>>
Especifica uma condição que deve ser verdadeira após o término da execução
de uma operação.
<<requirement>>
Especifica uma característica ou comportamento desejado para um sistema.
<<responsability>>
Responsabilidade ou obrigações que um elemento é encarregado de cumprir.
6
Apêndice: Extensibilidade da UML
Restrições
A UML também define como padrão algumas restrições. Aqui segue uma
lista com esses padrões com o elemento a qual se aplica.
{complete}
Especifica que todos os subtipos de um supertipo já foram especificados, não
permitindo filhos adicionais.
{incomplete}
Especifica que nem todos os subtipos de um supertipo foram totalmente
especificados, permitindo filhos adicionais.
{overllaping}
Especifica que subtipos de um supertipo podem ter mais de um filho como
tipo.
{destroyed}
Especifica que a instância deve ser destruída antes da conclusão da interação
da qual ela faz parte.
{new}
Especifica que a instância deve ser criada durante a execução da interação da
qual ela faz parte.
{transient}
Especifica que a instância deve ser criada durante a execução da interação da
qual ela faz parte, mas é destruída antes da conclusão da execução.
7
Apêndice: Extensibilidade da UML
Glossário
abstração
Característica essencial de uma entidade que a diferencia de todos os outros
tipos.
agregação
Tipo de associação na qual um todo é relacionado com suas partes
(relacionamento todo/parte).
agregada
Classe que representa o "todo" no relacionamento de agregação.
arquitetura
Arquitetura de sistemas é um conjunto de decisões sobre artefatos e
elementos que formaram o sistema. A arquitetura deve abranger como será
construído o sistema, seus elementos estruturais e comportamentais, suas
colaborações, etc.
artefato
Conjunto de informações utilizado ou realizado por um processo de
desenvolvimento de sistemas de software.
assinatura
Nome, parâmetros e valores de retomo de uma operação.
associação
Associação descrê vê relacionamentos entre objetos. Cada associação tem
duas pontas, onde em cada ponta está ligado um objeto.
atividade
Estado de execução de alguma coisa. Pode ser, por exemplo, a execução de
um método em uma classe, uma rotina de trabalho, etc.
ator
Papel desempenhado por qualquer usuário de um caso de uso, ou seja, o ator
é quem solicita os serviços disponíveis em casos de uso.
atributo
Atributo é uma propriedade de classe. Representa as características próprias
de uma abstração.
autochamada
Mensagem que um objeto envia para si mesmo.
característica comportamental
Característica dinâmica de um elemento, como uma operação ou um método.
8
Apêndice: Extensibilidade da UML
característica estrutural
Característica estrutural (estática) de um elemento.
cardinalidade
Número de elementos existentes em um conjunto.
caso de uso
Documento que descreve os cenários pretendidos para um sistema, com o
objetivo de atender as necessidades do usuário.
classe
Abstração de um conjunto de objetos que compartilham os mesmos atributos,
operações e relacionamentos.
colaboração
Nome dado à interação entre duas ou mais classes, com o objetivo de fornecer
algum comportamento cooperativo.
componente
Parte física de um sistema, que representa elementos lógicos para a realização
de uma ou mais interfaces.
comportamento
Resultados produzidos por eventos e métodos.
composição
Forma de agregação, em que o objeto-parte pode pertencer somente ao
objeto-todo. Além disso, geralmente o objeto-todo vive e morre com suas
partes, isto é, acontece uma remoção em cascata
container
Objeto que existe para conter outros objetos e que proporciona operações para
acessar ou interagir com seu conteúdo.
delegação
Habilidade de um objeto enviar uma mensagem a um outro objeto como
resposta a uma mensagem recebida.
dependência
Relacionamento entre dois itens, em que a alteração do item independente
pode alterar a semântica do item dependente.
destinatário
Objeto que manipula a instância de uma mensagem passada pelo objeto
emissor.
diagrama
Representação gráfica de um conjunto de elementos do sistema, que permite a
visualização do sistema sob diferentes perspectivas.
9
Apêndice: Extensibilidade da UML
diagrama de atividades
Representa um fluxo de controle de atividades, que ocorrem no processo de
um sistema, oferecendo suporte para comportamentos condicionais e
paralelos
diagrama de classes
Representa o modelo da estrutura de um sistema orientado a objetos,
demonstrando as classes, os tipos e os relacionamentos.
diagrama de colaboração
Um dos diagramas de interação que dá ênfase à organização estrutural dos
objetos que colaboram entre si.
diagrama de componentes
Representa os componentes que farão parte dos sistemas em construção,
demonstrando as dependências entre esses componentes.
diagrama de implantação
Representa a configuração e a arquitetura de um sistema a que estarão
ligados seus respectivos componentes, podendo ser representada também a
arquitetura física de hardwares, processadores, etc.
diagrama de objetos
Representa a modelagem de instâncias das classes de um sistema em
determinado ponto e momento de execução.
diagrama de seqüência
Um dos diagramas de interação que dá ênfase à ordenação sequencial em que
os comportamentos acontecem.
encapsulamento
Mecanismo usado para ocultar os dados, a estrutura interna e os detalhes de
implementação de um objeto. Toda a interação com um conjunto de objetos é
feita de uma interface pública constituída de operações.
estado
Situação vivida por um objeto, pela qual esse objeto deve responder algo aos
eventos gerados.
estereótipo
Extensão do vocabulário da UML que permite a criação de novos tipos de
blocos de construção, para atender necessidades específicas de um modelo.
10
Apêndice: Extensibilidade da UML
estímulo
Evento gerado no sistema que necessita de resultados.
evento
Ocorrência de um estímulo gerado para o objeto, capaz de fazer a mudança de
seu estado atual.
exportar
Tornar visível um elemento fora do espaço do nome que o contém.
expressão
Seqüência de caracteres que tem como resultado um valor.
expressão booleana
Tem como resultado um valor booleano.
filha
Subclasse.
foco de controle
Indicador do período de duração pelo qual os objetos estão cooperando para
realizar um comportamento.
generalização
É a capacidade de se criar superclasses que encapsulam a estrutura e o
comportamento comum a várias subclasses.
herança
Mecanismo pelo qual elementos mais específicos incorporam a estrutura e o
comportamento de elementos mais gerais.
herança múltipla
Uma variação da generalização, em que uma subclasse pode herdar a
estrutura e o comportamento de mais de uma superclasse.
hierarquia de classes
Representa descrições das relações de herança entre classes.
implementação
Realização concreta do contrato declarado por uma interface ou a definição de
como algo é construído ou computado.
incompleto
Modelagem de um elemento em que faltam certas partes.
instância
Manisfestação concreta de alguma abstração, uma entidade à qual um
conjunto de operações pode ser aplicado e que tem um estado para armazenar
o efeito das operações.
11
Apêndice: Extensibilidade da UML
integridade
Relacionamento consistente e apropriado entre dois ou mais elementos.
interação
Conjunto de objetos que interagem por meio da troca de mensagens, para a
realização de um comportamento.
mãe
Superclasse.
máquina de estados
Seqüência de estados pela qual um objeto passa durante seu tempo de vida.
mecanismos de extensabilidade
Um dos mecanismos que permite a extensão da UML de maneira organizada.
mensagem
Meio de comunicação entre objetos que contêm informações à espera de
atividades que acontecerão.
método
Implementação de uma operação para uma classe.
modelo
Simplificação da realidade, criado com a finalidade de proporcionar uma
melhor compreensão do sistema que será gerado.
multiplicidade
Indicação de quantos objetos podem participar de um dado relacionamento.
nó
Elemento físico existente em tempo de execução que representa um recurso
computacional.
nota
Representa comentários, observações e esclarecimentos que se podem utilizar
para qualquer elemento da UML.
objeto
Sinónimo de instância de classe, sendo uma manifestação concreta de uma
abstração com uma identidade que encapsula estados e comportamentos.
objeto persistente
Objeto que sobrevive após o término de execução de um processo ou um
thread.
12
Apêndice: Extensibilidade da UML
objeto transiente
Objeto que sobrevive somente até o término de execução de um processo ou
um thread.
operação
Procedimento de chamada em um objeto.
operação polimórfica
Uma mesma operação que é implementada de maneira diferente por dois ou
mais tipos.
pacotes
Organizam os modelos criados na UML.
pai
Superclasse.
papel
Comportamento de uma entidade que participa de determinado contexto no
sistema.
parâmetro
Especificação de uma variável que pode ser alterada, passada ou retornada.
polimorfismo
Conceito segundo o qual dois ou mais tipos de objetos podem responder à
mesma mensagem de maneiras diferentes, usando operações polimórficas.
pós-condição
Algo que necessita ser verdadeiro após a chamada de uma operação.
pré-condição
Algo que necessita ser verdadeiro antes da chamada de uma operação.
privado
Mecanismo de escopo usado para restringir o acesso a atributos e operações
de uma classe, de maneira que outros objetos não possa utilizá-los.
produto
Artefatos de desenvolvimento, como códigos, modelos, documentação gerada,
etc.
propriedade
Característica de um elemento da UML.
público
13
Apêndice: Extensibilidade da UML
raia de natação
Organiza as atividades representadas em diagramas de atividades. Essa
organização consiste em criar grupos que são responsáveis pelas atividades
ocorridas.
realização
Relacionamento entre itens, no qual um item implementa comportamentos
especificados por outros.
receptor
Objeto ao qual é enviada uma mensagem.
refinamento
Relacionamento que representa a especificação completa de algo já
especificado em determinado nível de detalhe.
relacionamentos
Conexão semântica entre elementos.
responsabilidade
Contrato ou obrigação em um tipo ou de uma classe.
restrição
Extensão da semântica de um elemento da UML, permitindo criar ou modificar
regras já existentes.
solicitação
Especificação de um estímulo enviado a um objeto.
subclasse
Elemento que recebe por herança a estrutura e os comportamentos de uma
superclasse.
superclasse
Elemento que contém a estrutura e o comportamento generalizado de outras
classes (as subclasses).
thread
Fluxo leve de controle que pode ser executado concorrentemente com outros
threads no mesmo processo.
tipo
Estereótipo de uma classe, utilizado para especificar um domínio de objetos,
com as operações que podem ser aplicadas aos objetos.
transição
14
Apêndice: Extensibilidade da UML
Relacionamento entre dois estados, em que o objeto no seu estado atual deve
realizar atividades para passar para um outro estado, desde que as atividades
tenham sido cumpridas.
valor atribuído
Extensão das propriedades de um elemento da UML, que permite a criação de
novas informações na especificação desse elemento.
versão
Um conjunto de artefatos de software, relativamente completos e consistentes
que serão entregues.
visão
Projeção em um modelo, vista a partir de determinada perspectiva ou ponto de
vista, que omite as entidades que não são relevantes para essa visão.
visão dinâmica
Aspectos de um sistemaque dão ênfase a comportamentos.
visão estática
Aspectos de um sistema que dão ênfase à estrutura.
visibilidade
Especificação de como uma característica ou um comportamento especificado
para uma classe podem ser vistos por outros objetos de classe.
15
UML: Unified Modeling Language
1
Apêndice: Extensibilidade da UML
2
Apêndice: Extensibilidade da UML
3
Apêndice: Extensibilidade da UML
4
Apêndice: Extensibilidade da UML
5
Apêndice: Extensibilidade da UML
6
Apêndice: Extensibilidade da UML
7
Apêndice: Extensibilidade da UML
8
Apêndice: Extensibilidade da UML
9
Apêndice: Extensibilidade da UML
10