UML
Modelando um sistema
Fases do desenvolvimento de Software





Análise de requisitos
Análise
Projeto
Desenvolvimento
Testes
Análise de Requisitos




Esta fase captura as intenções e
necessidades dos usuários do sistema
Marcada por uma entrevista com cliente
Os interesses do cliente devem ser
formalizados para próxima fase
Para formaliza-los é usado o digrama UML
de “casos de uso”
Analise





A fase de análise está preocupada com as primeiras
abstrações (classes e objetos)
Estas abstrações estarão presentes no domínio do
problema
As classes são modeladas e ligadas através de
relacionamentos com outras classes,
As colaborações entre classes também são
mostradas neste diagrama para desenvolver os
“casos de uso" modelados anteriormente
Estas colaborações são criadas através de modelos
dinâmicos em UML
Analise



Na análise, só serão modeladas classes que
pertençam ao domínio principal do problema
Estas são classes técnicas que gerenciem
banco de dados, interface, comunicação,
concorrência
As demais classes não estarão presentes na
modelagem dessa fase
Projeto




O resultado da análise é expandido em soluções
técnicas
Novas classes serão adicionadas para prover uma
infra-estrutura técnica
As classes do domínio do problema modeladas na
fase de análise são mescladas nessa nova infraestrutura técnica
O design resulta no detalhamento das
especificações para a fase de programação do
sistema
Modelagem



Desenvolver o modelo de uma aplicação
antes de construí-la, é tão essencial quanto
ter uma planta para a construção de uma
casa
Com o aumento da complexidade dos
sistemas, é importância conhecer boas
técnicas de modelagem
A UML se tornou uma notação padrão da
indústria de arquitetura de software
Notação UML




Visões: Mostram os diferentes aspectos do sistema,
dando enfoque a ângulos e níveis de abstrações
diferentes
Modelos de Elementos: São os conceitos utilizados
nos diagramas
Mecanismos Gerais: Provém comentários,
informações ou semântica sobre os elementos dos
modelos.
Diagramas: São gráficos que descrevem o conteúdo
em uma visão
Visões


Cada visão é descrita por um número de
diagramas que contém informações que dão
ênfase aos aspectos particulares do sistema
Tipos:
–
–
–
–
–
Visão de Casos de Uso
Visão de Componentes
Visão Lógica
Visão de Organização
Visão de Concorrência
Visão de caso de Uso



Descreve as funcionalidades do sistema
desempenhada pelos atores externos
É a visão central, base para as outras visões
do sistema
Descrita pelos diagramas:
–
–
de Casos de Uso
de Atividades
Diagrama de caso de uso

Elementos
Caso de Uso
Nome do Caso
ATOR
ASSOCIAÇÂO
Diagrama de caso de uso

Exemplo: Sistema Escola
Cadastrar aluno
Cadastrar professor
Listar alunos
Gerente da
escola
Listar professores
Calcular média
Diagrama de Atividades




O Diagrama de Atividades mostra o fluxo de
controle
Eles capturam ações e seus resultados
Eles focam o trabalho executado na
implementação de uma operação (método)
Tipicamente as atividades são estados de
ação – estados que transitam para outro
estado
Diagrama de Atividades

Elementos
INICIO
Nome do Estado
ESTADO
FIM
TRANSIÇÂO
FLUXO PARALELO
TOMADA de DECIÇÂO
Diagrama de Atividades

Exemplo
Visão Lógica



Descreve como as funcionalidades do sistema serão
implementadas
Especifica a estrutura estática e dinâmica
Representada pelos diagramas:
–
–
–
–
–
–
de Classe
de Objetos
de Estado
Seqüência
Colaboração
Atividades
Diagrama de Classes



É a descrição de conjunto de objetos que
compartilham os mesmos atributos e
relacionamentos (estado), operações e
semântica (comportamento)
O Diagrama de Classes mostra a estrutura
estática do modelo da aplicação
Este diagrama exibe as classes do sistema e
o grau do relacionamentos entre elas
Diagrama de Classes

Elementos
ASSOCIAÇÂO
Cliente
Nome : String
Idade : Num
Nome da Classe
Criar()
Destruir()
Operações
Atributos
COMPOSIÇÃO
GENERALIZAÇÃO
DEPENDENCIA
AGREGAÇÃO
Diagrama de Classes

Diagrama de classe (simples)
Escola
matricula
Aluno
contrata
Professor
Diagrama de Classes

Exemplo Pessoa
Principal
exibe
Mundo
abriga
abriga
Animais
ocupam
Pessoas
Local
ocupam
Diagrama de Classes

Cardinalidade
–
Quantidade de objetos na relação
Principal
exibe
1
Mundo
abriga
1
*
abriga
Animal
*
1
1
ocupam
*
Pessoa
ocupam
1
1
1
Local
Diagrama de Classes

Animal
Animal
- nome: String
- peso: float
- Posição: Local
+ mover(passos: int, direção: String) : local
+ comer(pesoDaComida:float ): float
proteção
+ Define
Publico
- Define
Privado
Diagrama de Classes

Exemplo: Sistema escola
Escola
alunos: Alunos[ ]
professores: Professores[ ]
adicionarAlunos(Aluno a) : void
adicionarProfessor (Professor p) : void
listarAlunos( ): void
1
*
Aluno
nome: String
matricula: int
nota1: int
nota2: int
construtor( ):
executar( ) : void
1
*
Professor
nome: String
matricula: int
turmas: int
construtor( ):
Diagrama de Classes

Exemplo
Diagrama de Objetos



O Diagrama de Objetos é muito similar ao
Diagrama de Classes e utiliza quase a
mesma notação
Este diagrama mostra uma “fotografia” dos
objetos existentes em um determinado
momento na execução do sistema
São muito úteis para exemplificar
relacionamentos complexos entre objetos
em determinado momento
Diagrama de Objetos

Exemplo
Utilizando o JUDE

Interface inicial
JUDE

Criando um Projeto
JUDE

Criando um Projeto
JUDE

Interface do Projeto
JUDE

Criando Diagramas
JUDE

Criando Diagramas
JUDE

Criando Diagramas
JUDE

Criando Diagramas
JUDE

Criando Diagramas
JUDE

Atividade
–
Fazer o diagrama de atividades do Sistema
Escola
Download

Diagramas - Apostilas