Buscar

ESI UML Intro

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução a UML
Prof. Wilson M Yonezawa
UNESP – FC – Bauru
Depto. Computação
yonezawa@fc.unesp.br
Engenharia Software I
O que são modelos???
• Uma simplificação da realidade
• Oferece um desenho de um sistema em um 
determinado nível de abstração
• Exemplos de modelos:
– Modelo planetário
– Modelo atômico
– Modelo de um sistema de transporte coletivo
– Modelo de um sistema operacional
– Modelo de um sistema de gerenciamento de 
alunos
• Porque é uma forma de entendermos melhor
o sistema que precisamos construir
• Para representar o que será construído
• Para observar analisar o que será construído
• Para comunicar o que será construído
Por que criamos modelos?
• Ajuda a visualizar um sistema como ele é ou
como desejamos que seja
• Permite especificar a estrutura ou o
comportamento de um sistema
• Na construção de um guia para a construção
do sistema
• Na documentação das decisões tomadas no
projeto
Como os modelos auxiliam a E.S?
Princípios da modelagem
• “A escolha dos modelos a serem criados tem profunda
influência sobre a maneira como um determinado
problema é atacado e como uma solução é definida”
• “Cada modelo poderá ser expresso em diferentes níveis
de precisão”
• “Os melhores modelos estão relacionados à realidade”
• “Nenhum modelo único é suficiente. Qualquer sistema
não-trivial será melhor investigado por meio de um
pequeno conjunto de modelos quase independentes”
• Origem:
– Desenvolvida inicialmente no final de 1994
por Grady Booch e James Rumbaugh
– Ivar Jacobson, juntou-se ao grupo e iniciou
o trabalho de unificação das metodologias
Booch, OMT (Object Modeling Technique) e
OOSE (Object-Oriented Software Engi-
neering) em 1995.
UML – Unified Modeling Language
• “UML é uma linguagem padrão para
elaboração da estrutura de projetos de
software”
• “UML é adequada a modelagem de sistemas”
• “UML é apenas uma linguagem e, portanto, é
somente uma parte de um método para o
desenvolvimento de software”.
Booch, Rumbauch, Jacobson
UML – Unified Modeling Language
UML – Unified Modeling Language
• Linguagem para a elaboração da estrutura 
de projetos de software 
• Linguagem para:
Visualização,
Especificação
Construção 
Documentação 
• Representação gráfica com base na O.O.
• Cria modelos
• Negócios
• Requisitos
• Software
Conceitos - Orientação a objetos
• Classe e Objetos
• Abstração
• Encapsulamento
• Herança
• Polimorfismo
• Comunicação por mensagens
UML para visualizar
• UML permite elaborar modelos explícitos que
facilitam a comunicação
• UML utiliza um conjunto de símbolos que
permite comunicar ideias sem ambiguidade
Ex.: Um modelo escrito por um
desenvolvedor pode ser interpretado por
outro desenvolvedor
• Especificar é construir modelos precisos,
sem ambiguidades e completos
• UML atende as decisões importantes em
termos de análise, projeto e implementação
de sistemas de software
UML para especificar
• Modelos gerados em UML podem ser
conectados a várias linguagens de
programação
– Do modelo (UML) para o código-fonte
• É possível mapear modelos UML em
linguagens de programação e vice-versa
(engenharia reversa, mas nem sempre é
possível).
– Do código-fonte para o modelo (UML)
UML para construir
• Auxilia na documentação de artefatos de
software como: requisitos, arquitetura e projeto
• UML proporciona uma linguagem para
expressão de requisitos e para a realização de
testes
• UML auxilia na modelagem das atividades de
planejamento do projeto e gerenciamento de
versões
UML para documentar
Blocos de construção da UML
• Itens
– Estruturais
– Comportamentais
– Agrupamento
– Anotacionais
• Relacionamentos
 Dependência
 Associação
 Generalização
 Realização
• Diagramas
 Classes
 Objetos
 Casos de Uso
 Sequência
 Gráficos de estados
 Comunicação
 Atividades
 Componentes
 Implantação
UML - Diagramas
Diagramas UML
• Diagramas são os meios utilizados para a
visualização dos blocos de construção da UML
• São representações gráficas de um conjunto de
elementos
• Permitem visualizar o sistema sob diferentes
perspectivas
Visões complementares
• Visão do caso de uso
• Visão do projeto
• Visão do processo
• Visão da implementação
• Visão da implantação
Visões e formas
• Estruturais (itens estáticos)
• Comportamentais (itens dinâmicos)
• Em conjunto, as diferentes visões
captam as decisões importantes
• Individualmente, cada visão permite
voltar atenção para uma perspectiva do
sistema
Uso dos diagramas
• Para especificar modelos a partir dos quais
será construído um sistema executável
• Para reconstruir modelos a partir de partes
de um sistema executável (engenharia
reversa)
Como criar diagramas?
• De forma incremental:
• Ampliando os diagramas uma parte de
cada vez
• De forma iterativa:
• Repetindo o processo de projetar uma
pequena parte e construí-la
Estática e dinâmica
• Partes estáticas do sistema:
• Diagrama de Classes
• Diagrama de Objetos
• Diagrama de Componentes
• Diagrama de Implantação
• Partes dinâmicas do sistema:
• Diagrama de Casos de Uso
• Diagrama de Sequências
• Diagrama de Comunicação
• Diagrama de Gráfico de estados
• Diagrama de Atividades
Diagramas estruturais
• São organizados em função dos principais
grupos de itens encontrados na
modelagem de um sistema
Diagrama de classes: Classes, interfaces e colaborações
Diagrama de objetos: Objetos
Diagrama de componentes: Componentes
Diagrama de implementação: Nós
Diagramas comportamentais
Diagrama de caso de uso Organiza os comportamentos 
do sistema
Diagrama de sequência Foco na ordem temporal das 
mensagens enviadas e 
recebidas pelos objetos
Diagrama de comunicação Foco na organização estrutural 
dos objetos que enviam e 
recebem mensagens
Diagrama de gráfico de 
estados
Foco no estado de mudanças 
de um sistema orientado por 
eventos
Diagrama de atividades Foco no fluxo de controle entre 
objetos
Utilizando os diagramas
• Decida quais visões são necessárias para
expressar da melhor maneira a arquitetura do
sistema
• Para cada visão, decida quais artefatos devem ser
criados para capturar detalhes desta visão
• Decida quais diagramas deverão ser colocados
sob algum tipo de controle formal ou semiformal
Visão de caso de uso Diagrama de caso de uso
Visão de projeto Diagrama de classes
Diagrama de interação
Visão de processo Nenhum diagrama é necessário
Visão de implementação Nenhum diagrama é necessário
Visão de implantação Nenhum diagrama é necessário
Exemplo: Uma aplicação simples, executada em um 
único equipamento
Utilizando os diagramas
Diagrama de Caso de Uso
• Mostra atores (pessoas ou outros usuários do
sistema), casos de uso (os cenários onde eles
usam o sistema) e seus relacionamentos
• Descreve as interações típicas entre os
usuários de um sistema e o sistema
propriamente dito
• Representa a interface externa do sistema e
especifica o conjunto de exigências de o que o
sistema deve fazer
• O que são atores?
– Ator é uma entidade externa (fora do sistema)
que interage com o sistema participando de
um Caso de Uso
• Atores não representam as pessoa física ou
sistemas, mas sua regra
• Descrição do Caso de Uso são narrativas de
texto do Caso de Uso (em geral em forma de
Notas ou documentos)
Diagrama de Caso de Uso
Diagrama de Caso de Uso
• Em um caso de uso existe sempre no mínimo um
ator
• Existe sempre um iniciador num caso de uso
• Um caso de uso está sempre ligado a um
resultado relevante
• Caso de Uso podem estar relacionado a outros
casos de uso
• Tipos de relacionamentos:
– <<inclui-se>>: Um caso de uso toma lugar
dentro deoutro caso de uso
– <<estende>>: Um caso de uso é estendido
por outro caso de uso
– Generalização: Um caso de uso “herda”
características de um caso de uso de nível
superior
Diagrama de Caso de Uso
Utiliza linha
telefônica
Assinante
Acessar Internet
Efetua chamada de
voz
«extends»
«extends»
*
*
Sistema de Telefonia Fixa
Provedor Internet
*
*
Diagrama de Caso de Uso
Fonte: http://docs.kde.org/
Diagrama de Caso de Uso
• Mostra a troca de mensagens (isto é chamada de
método) entre diversos objetos, numa situação
específica e delimitada no tempo
• Coloca ênfase especial na ordem e nos
momentos nos quais mensagens para os objetos
são enviadas
Diagrama de Sequência
:ReceberPedido :AnalisarPedido
Actor1
enviarPedido
solicitarAnalise
confirmarPedido
Observar as regras de negócio no
 tratamento de pedido de clientes 
sem crédito.
Diagrama de Sequência
Diagrama de Sequência
Fonte: http://docs.kde.org/
Diagrama de Comunicação
• Mostra interação entre objetos sem muita
preocupação com a sequência das ações
• Indicado para mostrar um fluxo de um
programa
• Adequado para explanar um processo na
lógica do programa.
Diagrama de Comunicação
Diagrama de Gráfico de Estado
• Modela o comportamento de um objeto individual
• Especifica as sequências de estados pelos quais
um objeto passa durante seu tempo de vida em
resposta a eventos e suas respostas aos eventos
Iniciando servidor
Esperando conexão Desligando servidor
Atendendo conexão
Estado inicial
Estado final
Transição
Estado
Objeto: Servidor 
Diagrama de Gráfico de Estados
Partes de um estado
Nome do estado
Ações de entrada/saída
Transições internas
Subestados
Eventos adiados
Transição
Relaciona dois estados
Evento de ativação
Diagrama de Gráfico de Estado
Fonte: http://docs.kde.org/
Diagrama de Gráfico de Estado
• Gráfico de fluxo que mostra o fluxo de
controle de uma atividade para a outra (visão
lógica)
• Modelagem seqüencial de um processo
computacional
• Uma atividade é uma execução não atômica
em andamento em uma máquina de estados
Diagrama de Atividades
Diagrama de Atividades
Identificar Cliente
Cadastrar Cliente
Consultar Referências Fazer Orçamentos
Analisar Orçamento :Orçamento : <unspecified>
Bifurcação concorrente
União concorrente
Fluxo de objeto
Estado final
Estado inicial
Ramificação sequencial
Estado de ação
Estado de atividade
Classes
• Classe é uma descrição de um conjunto de
objetos que compartilham os mesmos
atributos, operações, relacionamentos e
semântica
• Termos e conceitos:
– Nomes da classe
– Atributos
– Operações
– Responsabilidade
• Classes são descritas por substantivos (ex:
Cliente, SensorTemperatura, Motor,
Computador, Carro)
• Atributos são propriedades nomeadas de uma
classe (ex: nome, endereço, dataNascimento)
• Operações são implementações de serviços que
pode ser solicitado por algum objeto da classe
para modificar o comportamento.
Classes
• O nome da operação é um verbo que representa
algum comportamento da classe correspondente
(ex: move, isEmpty)
• É possível especificar uma operação indicando
sua assinatura com o nome, o tipo e valor padrão
dos parâmetros, assim com o tipo a ser
retornado
– Ex: configurarSensor(limiteMinimo: int):
boolean
Classes
Estereótipos
Classes
Responsabilidade: É 
um contrato ou 
obrigação da classe.
Exemplo: 
Efetuar matricula todos 
semestre
• Cancelar disciplina 
sempre que desistir da 
mesma
Classes
Classes e responsabilidades
• Modelar classes é especificar responsabilidades
dos itens
• Uma classe pode ter qualquer número de
responsabilidades (pelo menos uma
responsabilidade é necessária)
• As responsabilidades de uma classe podem ser
traduzidas num conjunto de atributos e
operações ao longo do processo de modelagem
Como identificar “Classes”?
• Levantar o vocabulário do sistema ou do
problema
• Identifique as principais abstrações no
problema
• Identifique as responsabilidades do sistema
• Classes não trabalham sozinhas
• Classes colaboram/comunicam-se umas com as
outras
• Três tipos básicos de relacionamento:
• Dependências
• Generalizações
• Associações
• Ex:
• Construir uma casa, carro ou
computador
• Quais as dependências,
generalizações e associações
existentes nesta tarefa?
Relacionamentos
Relacionamentos
+open()
+close()
+move()
+display()
+handleEvent()
-style
-posX
-posY
Window
MessageBox DialogBox Control
Event
* *
dependência
generalização
associação
Relacionamentos – Generalização
Forma
PolygonoCírculoRetangulo
Relacionamentos – Dependência
Relacionamentos – Associação
Papéis
Multiplicidade • Nome
• Papel
• Multiplicidade
• Agregação
Relacionamentos – Agregação
Empresa
1
*
Departamento
Todo
Parte
Composição
Janela
1
*
Moldura
Referências
• Allardice, S. Foundations of Programming Object-Oriented Design,
Disponível online em: www.lynda.com, acessado em setembro/2016.
• Booch, G.; Rumbauch, J.; Jacobson I. UML Guia do Usuário, Editora
Campus, 2006.
• http://www.tutorialspoint.com/uml/
• https://umbrello.kde.org/
• http://www.omg.org/spec/UML/

Outros materiais