Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Prof. Welton Duque
Modelos e Linguagens de
Programação
Notações Gráficas em
Linguagens de Programação
Levantamento de Requisitos
Análise
Capturar as
características Projeto
que definem Entender e
refinar os Testes
"o que" o Determinar
sistema deve requisitos do Implementação
sistema "como" o
fazer sistema Verificar se os
atenderá os requisitos
foram Disponibilizar
requisitos o sistema para
(desenvolver o atendidos
os usuários
software)
Modelagem de Software ii.11
Prof. Welton Duque
Diagramas da UML 2.5
Diagramas Estruturais:
• Representam os aspectos estáticos do sistema, sua
estrutura de dados, funções, relacionamento entre
seus componentes, etc.
• Tipos: classes, objetos, pacotes, estrutura
composta, componentes, implantação e perfil
Diagramas Comportamentais:
• Representam os aspectos dinâmicos do sistema em
estado de execução, suas respostas a estímulos do
ambiente e as interações entre os componentes
definidos nos diagramas estruturais
• Tipos: casos de uso, estados, atividades, sequência,
comunicação, temporização e interação
Modelagem de Software ii.12
Prof. Welton Duque
Diagramas da UML
Diagramas Arquiteturais (são estáticos):
• Mostram a organização dos componentes
executáveis do sistema, sua localização física, nós
de armazenamento com os quais interagem, etc.
• São produzidos já a partir do início da fase de
desenvolvimento do sistema
• São atualizados durante o projeto, para indicar a
arquitetura física pretendida
• Tipos: estrutura composta, pacotes e implantação
Modelagem de Software ii.13
Prof. Welton Duque
Ferramentas de diagramação UML
Comerciais:
Rational Rose (IBM)
Together (Borland)
Visual Paradigm
Visual Architect
Enterprise Architect 10 (Sparx Systems)
Describe (Embarcadero)
System Architect (Choose Technologies)
Astah (Change Vision - 50 days trial - antigo Jude)
Viso (Microsoft)
Open Source (http://www.sourceforge.net/):
ArgoUML
StarUML
Umbrello (for KDE)
Poseidon (Gentleware)
Dia UML
Online / Free
Lucidchart (https://www.lucidchart.com)
yEd (https://www.yworks.com)
Dia UML
Modelagem de Software ii.14
Prof. Welton Duque
Diagramas da UML
Em nossa disciplina, abordaremos os cinco diagramas mais
utilizados e suficientes para a modelagem de aplicações:
• Diagrama de Casos de Uso (Use Cases): mostram as
interações do ambiente com o sistema, descrevendo como
seu comportamento funcional é visto pelo usuário externo
• Diagrama de Classes: mostram a estrutura estática do
sistema, representada por suas classes, objetos, atributos e
associações entre as classes
• Diagrama de Sequência: comportamento dinâmico entre
os usuários, objetos e demais componentes do sistema
• Diagrama de Estados: comportamento dinâmico de um
objeto e como este reage aos eventos internos e externos
• Diagrama de Atividades: comportamento dinâmico do
fluxo de atividades de um processo (fluxos de trabalho)
ii.15
Prof. Welton Duque
Solicitar Verificar
Matricular aluno
histórico pré-requisitos
<<Ator>>
Coordenador
Sistema de controle
Professora Secretária Estudante
de pre-requisitos
Casos de Uso ii.18
Prof. Welton Duque
Exemplo da Clínica "Boa Saúde"
Exemplo de modelagem de Casos de Uso: A clínica médica
"Boa Saúde" deseja contratar um(a) engenheiro(a) de
computação para desenvolver um sistema de agendamento
de consultas e exames. Neste sistema, o paciente entra em
contato com a clínica para marcar consultas com seu(sua)
médico(a) de preferência. A secretária procura a data e hora
disponível mais próxima na agenda e marca a consulta. Por
fim, o paciente realiza a consulta e poderá receber, ou não, as
prescrições médicas e solicitações de exames do médico.
• Só de "ler" atentamente o enunciado, é possível identificar
os sujeitos das orações, que podem representar os atores
do sistema:
Realiza Consulta
Prescreve Medicamento
Solicita Exame
Médico
Diagrama de Casos de Uso ii.20
Prof. Welton Duque
O Diagrama Composto de
Exemplo da Clínica "Boa Saúde"
Casos de Uso representa todos
os casos de uso juntos, que
descrevem completamente
todos os requisitos funcionais
do sistema modelado
Todas as comunicações
entre os atores e o sistema
são bidirecionais e por cada
uma delas fluem todos os
dados previstos entre o ator
e o sistema
Fonte: http://www.devmedia.com.br/o-que-e-uml-e-diagramas-de-caso-de-uso-introducao-pratica-a-uml/23408
Diagrama de Casos de Uso ii.22
Prof. Welton Duque
Cada Caso de Uso deve possuir:
• O nome do ator com seu desenho de "palitinhos" (sujeito)
• Nome da interação dentro da "elipse" (verbo de ação)
• Linha que conecta o "palitinho" à "elipse" (comunicação)
• A linha pode ter uma seta em uma das pontas para indicar
quem inicia a operação (comunicação sempre bidirecional)
• Um caso de uso pode ter um ou mais cenários, sendo, por
exemplo, um cenário para descrever o uso normal e outros
cenários para descreverem os casos de exceções
• Casos de uso não são eficazes para elicitar restrições ou
regras de negócio, pois oferecem apenas visões simples da
interação entre os usuários (atores) e o sistema
• Para cada caso de uso, é necessário fornecer dados
complementares para a sua compreensão, que podem
incluir resumos textuais, tabelas e diagramas de sequência
Diagrama de Casos de Uso ii.23
Prof. Welton Duque
Dados complementares
Informações complementares
Caso de Uso: Transferir Dados
Diagrama de Casos de Uso ii.24
Prof. Welton Duque
Dados complementares para os casos de uso
Matricular
<<include>> aluno
Verificar caso de uso base
dependências
Sistema de controle caso de uso incluído
de pré-requisitos Secretária
Manter
Conta bancária
Gerente
de Conta
Cliente
Classes e
Diagrama de Classes
Diagrama de Classes ii.37
Prof. Welton Duque
Negocio::Banco mover()
redimensionar() Operações (opcional)
Cliente exibir()
Diagrama de Classes ii.39
Prof. Welton Duque
• Cada atributo possui um tipo de dado
• Cada operação possui uma assinatura composta
por dados (parâmetros) de entrada e de retorno
(como o retorno de uma função)
Implementação em Java
public class Sala{
int codigoSala;
Implementação em Delphi
type
Operações da Classe (opcional)
TSala = class
private
codigoSala: integer;
public
procedure consultarSala;
Diagrama de Classes ii.40
Prof. Welton Duque
Atributos ou Propriedades
• Um atributo é uma variável ou uma estrutura de
informação de uma classe, que estará presente em
todos os objetos instanciados desta classe
• Em um dado momento (estado), um objeto conterá
valores próprios (diferentes de outros objetos da
mesma classe) para todos os atributos da sua classe
Atributos podem ser Ou podem, também, ter seus
identificados apenas tipos de dados e valores
com nomes padrão também definidos
Cliente Parede
nome altura : real
largura : real
endereço
espessura : real
telefone viga : boolean = false
Diagrama de Classes ii.41
Prof. Welton Duque
Operações ou Métodos
• Uma operação é um comportamento que pode ser dado a
um objeto instanciado de sua classe
• Um classe pode ter qualquer número de operações ou,
inclusive, nenhuma operação
• Operações são meios de alterar os valores de atributos e
de promover a comunicação entre diferentes objetos,
sejam da mesma classe ou de classes diferentes
Como nos atributos, pode-se Ou especificar a assinatura da
especificar uma operação operação, ou seja, seus parâmetros
apenas com o seu nome e tipos de entrada e de retorno
Retângulo Retângulo
associação associação
Relacionamentos entre Classes ii.55
Prof. Welton Duque
Multiplicidade e Navegação das Associações
MULTIPLICIDADE:
• Define quantos objetos participam do relacionamento
• Número de instâncias (objetos) de uma classe, que está(ão)
relacionada(s) à(s) instância(s) de outra classe
• É especificada em cada uma das pontas da associação
NAVEGAÇÃO:
• Por default, as associações, agregações e composições são
bidirecionais (os dois objetos são acessíveis entre eles)
• Entretanto, poderá haver associações unidirecionais, em
que a seta indica a única opção permitida de acesso
Relacionamentos entre Classes ii.56
Prof. Welton Duque
Associação
• As associações entre os objetos (instâncias) são mapeadas
pelos atributos de suas respectivas classes
• As associações "muitos" para "muitos" exigem a criação e
o correto controle de tabelas denominadas "agregados",
dentro dos bancos de dados relacionais
Diagramas de Classe: associação
ArquivoAula * * Turma
arquivoAulaID está associado a
turmaID
composição
associação
associação
agregação
Parte
Relacionamentos entre Classes ii.60
Prof. Welton Duque
Composição
• Um Empregado trabalha para apenas uma Empresa e, se a empresa
for destruída, o empregado também o será
• Empresa e EquipeDeProjeto mantêm uma relação de composição
em que seguem as mesmas restrições entre empresa e empregado
Pacotes Componentes
dependência
dependência dependência
Relacionamentos entre Classes ii.63
Prof. Welton Duque
Generalização
• Linha cheia com seta branca na extremidade, apontando
para a classe superior (ou caso de uso, ator, etc.)
• Denota um relacionamento "é-um-tipo-de":
– Um avião "é-um-tipo-de" transporte
– Um dragão é um tipo de pássaro e um tipo de réptil
• A classe filha herda as características da classe mãe
• Os objetos da classe-filha podem ser usados em qualquer
local em que a classe-mãe ocorra, mas não o contrário
• Polimorfismo: prevalece a operação da filha que tenha a
mesma assinatura da operação da mãe
• Classe-raiz: é uma classe que não possui classe mãe
• Classe-folha: é uma classe que não possui classes-filhas
• Herança simples: a classe filha tem apenas uma mãe
• Herança múltipla: classe filha que tem mais de uma mãe
Relacionamentos entre Classes ii.64
Prof. Welton Duque
Generalização
HERANÇA SIMPLES
generalização
associação
generalização
dependência
Relacionamentos entre Classes ii.65
Prof. Welton Duque
Generalização
HERANÇA MÚLTIPLA
Relacionamentos entre Classes ii.66
Prof. Welton Duque
Generalização
HERANÇA MÚLTIPLA
HERANÇA SIMPLES
Relacionamentos entre Classes ii.67
Prof. Welton Duque
Generalização
HERANÇAS
SIMPLES E
MÚLTIPLAS
Diagrama de Classes ii.68
Prof. Welton Duque
✓ Alunos e Coordenações são partes da Escola (agregação)
✓ As Coordenações só existem enquanto a Escola existir (composição)
✓ A DisciplinaEAD herda os atributos e operações da classe Disciplina
✓ Os demais relacionamentos entre as classes são todos de associações
✓ As multiplicidades devem ser todas indicadas nas associações entre classes
Todo Parte
Parte
Diagrama de Classes
Sistema de Consultório Dentário ii.69
Prof. Welton Duque
Relacionamentos entre Classes ii.70
Prof. Welton Duque
Interfaces
• A interface é um conjunto de operações (serviço) que uma
classe ou item está obrigado a realizar (é um contrato!)
• A interface define "o quê" fazer (conjunto de assinaturas
das operações), mas não define "como" fazer as operações
• Esta é a vantagem da interface, pois toda a implementação
("como") está separada da especificação ("o quê")
• Uma interface pode incluir apenas uma parte ou todo o
comportamento (operações) de uma classe ou item
realização dependência
Forma Icônica
Interface
Componente
Forma
canônica
Caso de Uso Colaboração
Relacionamentos entre Classes
Interfaces
ii.73
Prof. Welton Duque
Realização
Interface
Nome de um papel
da classe Funcionário
Como você modelaria? ii.75
Prof. Welton Duque
Associação, Agregação, Composição, Dependência,
Generalização, Realização
• Dependente e Funcionário?
• Família e Filhos?
• Pedido e Item de pedido?
• Funcionário e Cartão de Ponto?
• Carro, Roda, Direção e Motor?
• Curso, Curso de Graduação e Disciplinas?
• Aluno, Disciplina, Avaliação, Prova e Trabalho?
• Pessoa, Aluno, Crença, Religião, Oração?
• Funcionário, Empresa, Cargo, Salário, Setor?
• Conta bancária, cartão, outras contas, gerente?
Diagrama de Classes ii.76
Prof. Welton Duque
Passos da Modelagem Orientada a Objetos
1. A partir do problema e das tecnologias disponíveis,
defina todo o vocabulário possível do sistema, listando
os itens que os usuários e desenvolvedores citam para
descrever o problema ou a solução...
2. A partir do vocabulário, defina as abstrações...
3. A partir das abstrações, defina as responsabilidades...
4. A partir das responsabilidades, defina as classes...
5. A partir das classes, defina seus atributos e operações...
6. Depois, defina seus relacionamentos (estáticos) e as
colaborações (trocas de mensagens) entre seus objetos...
7. Por fim, implemente, teste e ponha o sistema em uso!
8. GO-LIVE !!!
Notas de comentários em UML ii.77
• Existe uma representação gráfica para comentários
Prof. Welton Duque
Diagrama de Objetos
Diagrama de Objetos ii.79
Prof. Welton Duque
welton
: Curso
Fulano :
Pier: Professor codCurso: "ECO0137"
Korea: Aluno descrição: "MODELP"
: Aluno codTurma: "GEC-5/6-0137NA"
Diagrama de Objetos ii.81
Prof. Welton Duque
Diagrama de Classes
Diagrama de Objetos
Diagrama de Objetos ii.82
Prof. Welton Duque
Diagrama de Classes
Diagrama de Objetos
Multiobjects
Diagrama de Objetos Prof. Welton Duque
ii.83
Curso Aluno
Diagrama de Classes Professor
ministra -codDisciplina: String -matrícula: String
-matrícula: String
1..3 1..5 -descrição: String 0..10
*
-nome: String
-nome: String
-codTurma: String -período: Integer
Diagrama de Objetos
p1: Professor
p2: Professor
matricula: "205-6712-09"
nome: "Jaelson Castro"
: Aluno
Diagramas de Interação
Diagramas de Interação ii.85
Prof. Welton Duque
Diagrama de Sequência
Diagrama de Sequência ii.88
• Mostra a sequência dos fluxos no tempo, de troca
Prof. Welton Duque
Submeter formulário
de pedido preenchido
Codificar dados
do formulário
Enviar dados
codificados Processar dados
Executar
Enviar dados
processados
Cadastrar pedido
Cadastro OK
Gerar página
de confirmação
Enviar página
Enviar página
Exibir página
Diagrama de Sequência ii.89
Prof. Welton Duque
• Sintaxe:
preparar()
[emEstoque]
remover() estoqueBaixo :=
verificEstoqueBaixo()
[estoqueBaixo]
<<crieate>
:ItemRenovEstoque
[emEstoque]
<<create>>
:ItemEntrega
Diagrama de Comunicação ii.100
• Mostra os relacionamentos estruturais entre os
Prof. Welton Duque
1: preparar()
p: Pedido
:ItemRenovEstoque
:ItemEntrega
Diagrama de Sequência ii.101
Prof. Welton Duque
Passo-a-passo de modelagem
1. Definir o contexto do diagrama: o sistema inteiro,
um subsistema, uma operação, uma classe, um
caso de uso ou uma colaboração de casos de uso
2. Identificar os objetos que participam da interação
e distribua-os da esquerda para a direita, deixando
os mais importantes à esquerda
3. Identificar o objeto que inicia a interação
4. Define linha de vida dos objetos (create/destroy)
5. Identificar as mensagens trocadas entre os objetos
que participam da interação
6. Identificar a sequência destas mensagens
7. Garantir que todos os parâmetros de envio e de
retorno estejam corretamente modelados
ii.102
Prof. Welton Duque
Diagrama de Atividades
Diagrama de Atividades ii.103
• Implementa a mesma ideia dos já conhecidos Prof. Welton Duque
Colocar filtro
na máquina
join
Ligar máquina
Filtrar café
join
término
Colocar café na
Beber H
xícara
Diagrama de Atividades ii.105
Prof. Welton Duque
H
negócio responsáveis pela Solicitar pr oduto
organizações
de negócio são
realização de ações que entidades do
possuem propriedades mundo real
organizacionais comuns Proce s sar pe dido
Cole tar m ate r iais
• As swimlanes modelam os
fluxos de trabalho dos Enviar pe dido
processos de negócio
empresariais (empregam a
notação BPMBN) Re cebe r pe dido Cobrar do clie nte
Diagrama de Estados
Diagrama de Estados ii.111
Prof. Welton Duque
• Um diagrama de estados mostra os possíveis estados de
um objeto individual, incluindo os eventos e operações
responsáveis pelas mudanças desses estados
• Um conjunto de estados e transições de um objeto
representa uma máquina de estados, que modela o
comportamento e o ciclo de vida de cada objeto, desde a
sua criação até a sua extinção
Diagrama de Estados ii.112
Prof. Welton Duque
• A máquina de estados modela o tempo de vida de um
objeto, de um caso de uso ou de um sistema inteiro
• Máquinas de estados estruturadas são como algoritmos
bem-estruturados: eficientes, simples, adaptáveis e
compreensíveis
Diagrama de Estados ii.113
Prof. Welton Duque
• Eventos causam mudanças (transições) de estados dos
objetos, em resposta às operações que estes recebem
• Um evento representa uma ocorrência significativa, que
tem uma localização no tempo e no espaço
• Uma transição é um relacionamento entre dois estados
Diagrama de Estados ii.114
Prof. Welton Duque
• O comportamento de objetos que precisam responder a
mensagens assíncronas, ou cujo comportamento atual
depende de seus estados passados, é melhor representado
por meio de uma máquina de estados
• Um estado é o momento específico da vida de um objeto,
durante o qual o objeto satisfaz uma condição, realiza
uma atividade ou aguarda um evento
Diagrama de Estados ii.115
Prof. Welton Duque
transição de
auto-transição conclusão
evento de entrada
enquanto está no estado
evento de saída
ação resposta
estado transição interna
condição estado final
ii.117
Prof. Welton Duque
Diagrama de Componentes
Diagrama de Componentes ii.118
Prof. Welton Duque
• Componentes são partes modulares de um
sistema, que ocultam a sua implementação por
meio de interfaces
• São graficamente representados por um retângulo,
com um ícone especial no canto superior direito
• Eles existem no mundo material:
Um item em tempo de execução (bibliotecas, docs, etc.)
Um arquivo de código fonte (.c, .vbs, .java, .frm, etc.)
Um arquivo executável (.exe, .dll, .class, etc.)
Uma tabela ou arquivo de um banco de dados
Diagrama de Componentes ii.119
• Um componente que implementa um certo conjunto
Prof. Welton Duque
Format.dll
JanelasComuns.dll
Palavras.exe
Palavras.ini
Palavras.hlp
Ortograf.dll
Diagrama de Componentes ii.121
Prof. Welton Duque
Cadastro.exe
<<link>>
Usuários
FormCadastro.html
Banco
<<link>>
Autenticacao.exe
Senhas
Principal.html
FormEntrada.html
ii.122
Prof. Welton Duque
Diagrama de Pacotes
Diagrama de Pacotes ii.123
Prof. Welton Duque
• Pacotes são itens de agrupamento conceitual, usados para
organizar e facilitar a legibilidade dos modelos UML
• As classes organizam responsabilidades e os pacotes
organizam subsistemas, itens, estruturas, hardware,
elementos de software e outros itens da UML
• Existem apenas no tempo de desenvolvimento e favorecem
a modularidade do sistema
• Seu desenho gráfico é de uma pasta, com um nome:
ii.124
Prof. Welton Duque
Subsistemas
Subsistemas ii.125
• Um subsistema é uma combinação de pacotes (contém Prof. Welton Duque
subsistema
interfaces
componente
ii.127
Prof. Welton Duque
Diagrama de Implantação
Diagrama de Implantação ii.128
Prof. Welton Duque
PC
Google
Chrome
Principal.html
servidorWeb
FormCadastro.html
Autenticação.exe
servidorDeArquivos
Cadastro.exe
FormEntrada.html
O SGBD a ser
servidorBancoDeDados utilizado ainda
não foi escolhido.
SGBD
ii.131
Prof. Welton Duque
Mecanismos adicionais
da UML
Mecanismos ii.132
Prof. Welton Duque
<<boundary>>
ClasseFronteira
ClasseFronteira
Notas ii.134
Prof. Welton Duque
Cliente LeitoraCartao
{persistence} {location=server}
Restrições ii.136
Prof. Welton Duque
• Usadas para a criação de novas regras ou
modificação de regras existentes sobre os
elementos do modelo
Funcionário
Professor 1..* 1 Departamento
{subset}
Coordenador
2 1
iii.137 Prof. Welton Duque
FIM
Muito obrigado a todos(as)!
Foi um prazer estar com vocês nesta
jornada de aprendizados e
compartilhamento de experiências!
Nos vemos em breve!
Sigamos em PAZ e HARMONIA!
E assertivos nas decisões futuras de nossas VIDAS.
Por favor, estudem e façam uma boa prova P2!