Curso Boson Treinamento - UML
Aula 1: Intro
UML - Linguagem de Modelagem Unificada
Modelagem, comunicação e documentação de arquitetura(design) de Software.
Diagrama > representação gráfica de um sistema.
- Estática > objetos, funções, atributos e relações.
- Dinâmica > mudança de estados.
obs: diagrams de casos de uso, classes, máquina de estados...
Aula 2: Diagrama de Classes
Classe: elemento/abstração do mundo real.
Objeto: instância da classe
Classe > objeto
abs implement
Descreve estrutura estática das classes dos sistema com os atributos, métodos e
relacionamentos.
Representação da Classe em UML
Classe_Representacao_UML.drawio
1. Nome > Nome + Estereotipo
2. Atributos > nome : tipo
3. Métodos (assinatura)> metodo(parametro) : tipo retorno
Modificadores de Acesso
+ public
# protected
- private
* internal, internal protected etc.
Aula 3: Relacionamentos
* conexão entre classes
1. Dependência: classe usa ou precisa de informações de outra p/ operar uma função
* ambas podem existir independentemente, mas precisam uma da outra p/ funcionar
adequadamente
A -------> B , onde A usa/depende B
obs: se for uma relação onde um obj de uma classe depende de mais de um obj da
outra classe,
necessário espeficar multiplicador.
2. Associação (dependência + forte): uma classe mantém referência a outra ao longo
do tempo.
A ___________> B, onde A TEM UM ou TEM VÁRIOS atributo(s) global B
* Associação Unidirecional (c/ Seta), Bidimensional (s/ seta A__________B)
* na bidimensional a dependência é mútua
* associação pode ter um nome, ex. um verbo
* objetos existem independentemente, porém n existe funcionalidade, ex. ASSINATURA,
entre Pessoa e Revista
* associação TERNÁRIA, quando a dependência acontece de modo circular entre mais
de duas classes. (poligono representa o ponto de convergência entre as classes)
3. Agregação: indica que uma classe é um container ou coleção de outras classes.
Para existir, o container precisa das classes agregadas.
ex. Level _____________<> LevelManger onde LevelManager possui um ou vários
objetos Level
* tem um ou tem vários
* a ponta indica quem AGREGA
* objetos fazem sentido sem o container
4. Composição: variação da agregação onde os objetos não fazem sentido sem o
container. Quando container
é extinto o objeto filho desaparece.
* figura igual, diamante cheio
5. Generalização/Especialização (herança), a classe derivada APONTA p/ classe base
ex. A <______________ B, onde B estende A
Obs: setas representam navegabilidade
multiplicador ex.
A ___________________________> B
1..*
1..*, onde 1 é o mínimo de instancias de B em A e
1, onde B possui um A
obs: Classe Associativa, quando há atributos em uma associação que não podem ser
armazenados em nenhuma
das classes envolvidas
* formatações específicas para Interface, classes abstratas, struct, enums etc.
* para enums, representação de máquina de estados
Aula 3: Casos de Uso
Captar comportamento pretendido do sistema e seus componentes, sem entrar na
implementação. Representam
aspectos do comportamento de uma classe, modelando REQUISITOS
1. Definir escopo do objeto
2. definir papeis
3. base para testes unitários
* n detalha implementação de funcionalidade
Uma classe pode ter um ou mais casos de uso. Um caso de uso modela um comportamento
dessa classe.
* casos de uso possui um nome ex. Fazer pedido, Pagar fatura, ler sensor
Ator x Casos de Uso
1. Ator (boneco) : relação entre o ator e o caso de uso chama-se Associação,
acontece atraves de MENSAGENS, input
do teclado/mouse ou informação obtida (get) de um sistema
* ator tem um nome (papel)
* ator pode ser um sistema EXTERNO
* todo ator é EXTERNO
* atores parecidos devem ser elencados em hierarquia de
generalização/especialização
2. Casos de Uso (elipse): funcionalidades/requisitos, necessidades e objetivos do
ator para com o sistema,
informações que devem retornar, casos de uso de requisitos funcionais,
ações que
se repetem
Fluxo de eventos: descreve o comportamento do caso de uso, ex. quando se inicia,
termina, em que momento
interage com um ou mais casos de uso ou atores, fluxos alternativos
de comportamento,
fluxo de informação entre casos de uso
representação: 1. Diagrama/Pseudocódigo ou 2. Máquina de Estados
1. usado para modelagem de cenários, testes e funcionalidades, caminhos de código e
iterações,
fluxos alternativos/exceções
2. estados que um objeto pode assumir ao longo do seu ciclo de vida
Outros Elementos
Fronteira > indica o que está dentro do sistema do que está fora
Cenário > modelagem de casos de uso
Assunto > nome do cenário (do sistema e seus componentes)
* associação: cruza a fronteira
* <<extente>> estende caso de uso (opcional)
* <<include>> inclui (obrigatória), um caso de uso depede de outro
* <<create>> objeto/elemento criado pelo usuário em tempo de execução
Pode haver relacioanamento de generalização entre atores/casos de uso
Aula 4: Exemplo de Casos de Uso
* associação entre ator e casos de uso, diz respeito ao mapeamento entre usuários
e suas funções desempenhadas dentro do programa
Aula 5: Diagramas de Interação
troca de dados/mensagens entre elementos
* ex. Diagramas de Comunicação e Temporização
* o de temporização mapeia o comportamento do sistema ao longo da
passagem do tempo, ou ciclos temporais
Aula 6: Diagramas de Sequência
ex. sequência de eventos, máquina de estados
* documentação e comunicação de processos e requisitos
* ciclo de vida do objeto, linha tracejada de cima para baixo (objeto no tempo)
Mensagem Síncrona: espera por uma resposta antes que a interação possa prosseguir
Mensagem Assíncrona: não espera resposta antes de prosseguir (ex. multi tasks)
Dicas
Ao desenhar diagrama de classes e relacionamentos, colocar os componentes estáveis
embaixo.
Deste modo, setas para cima indicam violações ao princípio de inversão de
dependência.
Programas: [Link] e astah