Escolar Documentos
Profissional Documentos
Cultura Documentos
MODELAGEM DE
SOFTWARE
PROF. ANDRÉ LUIZ PERIN
AULA 04 - 2020
Modelagem de Software
Diagrama de Atividade
◦ Mostra o comportamento, ou seja o aspecto dinâmico de partes
do sistema
◦ Captura o comportamento de forma detalhada, focada em uma
parte do sistema.
◦ Gráfico do fluxo das atividades
◦ A sequência e como são encadeadas as atividades, incluindo as condicionais para que
as atividades acontecem se houver esta situação.
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Nó inicial
◦ Identifica o inicio do fluxo, é representado por um circulo totalmente preenchido
◦ Pode haver mais de um nó inicial
◦ Se houver opcionalmente pode-se usar o elemento de anotação para melhorar o
entendimento
Início do processo
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Ação
◦ É o elemento mais básico do diagrama de atividades, seu objetivo é representar a
transformação de dados por meio do processamento do sistema, ou mostrar algum
passo ou alguma rotina sendo executada
◦ É representada pela figura de um retângulo com os cantos arredondados contendo
em seu interior o nome da atividade, que deve começar por um verbo no infinitivo.
◦ Uma atividade pode ser formada por um conjunto de ações ou de outras atividades.
◦ Ações são coisas feitas pelo usuário ou respostas dadas pelo sistema
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Ação
Preencher Nota
fiscal
Imprimir Nota
Fiscal
Emitir etiqueta de
Identificação
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Fluxo de controle Preencher Nota
◦ Conecta as ações, mostra qual fiscal
Procurar produto
Não Fora do
Filtrar por preço
encontrado orçamento
Comprar
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Nó de Bifurcação (barra de sincronização)
◦ Utilizado para mostrar que em um determinado ponto do fluxo de controle, há uma
transformação para dois ou mais fluxos de controle que ocorrem ao mesmo tempo,
ou seja concorrentes.
Emitir etiqueta
Emitir etiqueta
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Merge (fusão)
◦ Utiliza o mesmo símbolo do nó de decisão porem mostra outro significado, é
utilizado para mostrar que vários fluxos de controle chegaram, porem a saída do
fluxo de controle é única.
◦ Parecido com o Nó de União porem não existe sincronização de ações como
acontece com o Nó de União
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Merge (fusão)
Faturar produto
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Subatividade
◦ Mostra que uma atividade possui dentro subatividades (subordinadas a atividade
que as possui), identificada por um ramo parecido com o um tridente).
◦ Útil para balancear o nível de detalhamento das atividades do diagrama.
Modelagem de Software
Diagrama de Atividade
◦ Elementos
◦ Subatividade
Checar a validade do
Preencher formulário
certificado
Assinar
Gerar arquivo PDF
digitalmente
UC001
Vender
Vendedor
Cliente UC002
Pagar
Caixa
Modelagem de Software
Diagrama de Atividade
◦ Exemplo: Loja física
◦ Fluxo principal
◦ O Cliente escolhe o produto na vitrine
◦ Solicita ao Vendedor que a mostre
◦ O Vendedor mostra o produto e propõe a venda
◦ Fluxo alternativo
◦ O Cliente não aceita comprar
◦ O fluxo termina
◦ O Cliente então aceita comprar e paga o produto
◦ O Caixa recebe o valor do cliente pelo produto comprado
◦ O vendedor entrega o produto
◦ O Cliente recebe o produto
Modelagem de Software
Diagrama de Atividade
◦ Exemplo: Loja física
◦ Diagrama de Atividades
Cliente Vendedor Caixa
Classes
aplicada aos compartimentos
detalhes como valores padrão, de atributos e operações na
parâmetros e marcações de janela de classes.
◦ Notação visibilidade bem como os
cabeçalhos dos compartimentos
opcionais Window
todos os compartimentos
attributes
suprimidos
Window public
size: Area = (100, 100)
attributes
Window +size: Area = (100, 100)
defaultSize: Rectangle
protected
#visibility: Boolean = true visibility: Boolean = true
Window private
xWin: XWindow
size: Area
operations
visibility: Boolean
operations public
display() display()
display()
hide() hide()
hide()
-attachX(xWin: Xwindow) private
attachX(xWin: Xwindow)
Produto LocalArmazenagem
- código - código
- nome - area_Util
- valor - status_Alocacao
- dataValidade
+ informaValor + informaQuantidade
+ informaValidade Armazenado + informaData_in
+ informaNome + informaData_out
0..1 0..*
Modelagem de Software
Relacionamento
◦ Conceito
◦ Uma classe se relaciona a outras classes, porque suas instancias (objetos) interagem
uns com os outros
◦ Principais tipos de relacionamento na UML:
◦ Herança (Generalização/Especialização)
◦ Associação
◦ Dependência
Modelagem de Software
Relacionamento
◦ Herança
◦ Uma maneira natural de organizar vários componentes estruturais de um pacote de
software é de forma hierárquica, com definições abstratas semelhantes agrupadas em
uma maneira de nível para nível que vai de específico a mais geral à medida que se
percorre a hierarquia.
◦ Utiliza o conceito de Generalização/Especialização
◦ É quando uma classe deriva de outra, herdando características fundamentais, mas por
sua vez, adiciona outras novas características, estas características podem ser novos
métodos e atributos, ou mesmo somente atributos novos com modificação de
métodos existentes.
Modelagem de Software
Relacionamento
◦ Herança
◦ A classe existente é tipicamente descrita como a classe base, classe pai ou superclasse,
enquanto a classe recém-definida é conhecida como subclasse ou classe filha.
◦ A subclasse estende a superclasse.
◦ A subclasse herda automaticamente, em princípio, todos os métodos da superclasse
(exceto construtores).
◦ A subclasse pode se diferenciar de sua superclasse de duas maneiras:
◦ Pode aumentar a superclasse adicionando novos campos e novos métodos.
◦ Pode, também, pode especializar os comportamentos existentes, fornecendo uma
nova implementação que substitui um método existente.
Modelagem de Software
Relacionamento
◦ Herança
Construcao
Pessoa
- cpf
- nome 0..*
+ informaNome Filiação
+ informaCpf 2
+ alteraIncluiNome
+ alteraIncluiCpf
Modelagem de Software
Relacionamento
◦ Associação
◦ Binária
◦ A classe se relaciona associando-se com outra classe
Pessoa Departamento
- cpf - codigo
- nome Alocação - nome
- codDepartamento
0..* 1
+ informaNome + informaNome
+ informaCpf + informaCodigo
+ alteraIncluiNome + alteraIncluiNome
+ alteraIncluiCpf + alteraIncluiCodigo
+ associaDepart
Modelagem de Software
Relacionamento
◦ Associação
◦ Múltipla
◦ Várias classes compartilham a mesma associação
Professor Turma
- matricula Leciona Possui - numeroIdentifcacao
- nome 1..* 1..*
+ informaNome 1..* Utiliza + informaIdentific
+ informaMatricula + alteraIncluiIdentific
+ alteraIncluiNome SalaDeAula
+ AlteraIncluiMatricula - numeroSala
- predio
+ informaPredio
+ informaNumero
+ alteraIncluiPredio
+ alteraIncluiNumero
Modelagem de Software
Relacionamento
◦ Associação
◦ Agregação
◦ Chamada também de “todo-parte”.
◦ Quando duas classes se associam e uma delas é a parte da outra, e a outra é a
agregadora.
◦ O tempo de vida do objeto criado na classe ”parte” não depende do tempo de vida
do objeto “todo”.
◦ A Classe ”parte” esta agregada mas não depende da classe ”todo” para existir.
Modelagem de Software
Relacionamento
◦ Associação
◦ Agregação
◦ A classe se relaciona associando-se à outra por agregação, tornando-se parte, mas
ainda pode existir sem a outra classe
EdicaoRevista ArtigoCientifico
- numero Contém - titulo
- data - autores
6..10 - data
+ criaRevista
+ publicaRevista + criaArtigo
+ forneceArtigo
Modelagem de Software
Relacionamento
◦ Associação
◦ Composição
◦ Chamamos também de “todo-parte”
◦ Quando duas classes se associam e uma delas é a parte da outra, formando uma
composição.
◦ O tempo de vida do objeto criado na classe ”parte” depende do tempo de vida do
objeto “todo”.
◦ A Classe ”parte” é de fato uma composição e depende da classe ”todo” para existir.
Modelagem de Software
Relacionamento
◦ Associação
◦ Composição
Pedido itemPedido
- numero Composto de - linha
- data - quantidade
1..*
+ criaPedido + criaItem
+ alteraPedido + alteraItem
Modelagem de Software
Relacionamento
◦ Dependência
◦ Quando duas classes se relacionam e uma delas se sofrer alteração poderá por
consequência provocar mudança na outra classe.
◦ Chamamos de classe fornecedor a classe que é independente, e de cliente a classe
que por consequência poderá ser alterada
Modelagem de Software
Relacionamento
◦ Dependência
Embalagem Produto
- codigo
- codigo
- descricao
- dimensoes
- dimensoes
+ informaDimensoes + informaCodigo
+ registraDimensoes + incluiAlteraCodigo
+ informaDescricao
+ incluiAlteraDescricao
+ informaDimensoes
+ registraDimensoes
Modelagem de Software
Multiplicidade
◦ Multiplicidade ou Cardinalidade
◦ Determina quanto objetos de cada classe (instâncias) podem ser
conectados em uma ocorrência da associação.
◦ É escrita como uma expressão de valores mínimo e máximo, que
podem ser iguais, e utilizamos dois pontos horizontalmente
dispostos para separar os valores mínimo e máximo.
Modelagem de Software
Multiplicidade
◦ Valores possíveis:
◦ Um mínimo e um máximo
◦ 1..1
◦1
◦ Zero ou um
◦ 0..1
◦ Zero ou muitos
◦ 0..*
◦*
◦ Um ou mais
◦ 1..*
◦ Ou determinar valores exatos
◦ 2..5
◦ 2 (neste caso o mínimo e máximo é igual a 2)
Modelagem de Software
Navegação
◦ Consegue-se identificar direta e facilmente o objeto da outra
classe a qual esteja associado.
◦ A navegação é bidirecional a menos que esteja explicita com a
seta.
◦ Utiliza-se uma seta aberta para indicar a direção da navegação.
◦ Lembrando:
◦ A seta fechada é utilizada para a Generalização/Especialização (herança).
Modelagem de Software
Navegação
◦ A seta aberta na extremidade da associação indica a direção da
navegação
Pessoa Departamento
- cpf - codigo
- nome Alocação - nome
- codDepartamento
0..* 1
+ informaNome + informaNome
+ informaCpf + informaCodigo
+ alteraIncluiNome + alteraIncluiNome
+ alteraIncluiCpf + alteraIncluiCodigo
+ associaDepart
Modelagem de Software
Classes de Associação
◦ As classes de associação são necessárias quando há atributos
relacionados à associação e que não podem ser armazenados em
nenhuma das classes envolvidas
◦ Outra característica é que há multiplicidade muitos (*) em todas
as extremidades da associação, mas nem sempre toda associação
com multiplicidade nas suas extremidades necessitará de uma
classe de associação.
Modelagem de Software
Classes de Associação
Aluno Turma
- nome Leciona Possui - nome
* 1..*
+ informaNome + informaNome
+ alteraIncluiNome + alteraIncluiNome
Matricula
- numeroMatricula
- dataMatricula
+ informaMatricula
+ AlteraIncluiMatricula
+ informaData
+ alteraIncluiData