Buscar

004 UML

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 12 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 12 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 12 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

08/05/2014 
1 
UML 
 
Unified Modeling Language 
 
Análise e Projeto de Sistemas Orientados a Objetos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Slides referência: Prof. Diego Asfora 
Histórico 
Nos meados dos anos 90 existiam mais de 50 
métodos OO 
Alguns dos métodos de maior destaque eram 
Booch (Grady Booch), OOSE – OO Software 
Engineering (Jacobson) e OMT – Object Modelling 
Technique (Rumbaugh) 
Os três autores se juntaram e em 1996 foi lançada 
a UML 0.9 
No início de 1997 foi lançada a UML 1.0, com a 
colaboração de um consórcio de empresas 
Histórico 
Em novembro de 1997 a UML 1.1 (revisada) foi 
adotada pelo OMG – Object Management Group 
A manutenção da UML foi assumida pela RFT 
(Revision Task Force) do OMG, que produziu as 
versões 1.3, 1.4 e 1.5 
Entre 2000 e 2003, a UML foi amplamente revisada 
e atualizada 
No início de 2005 a UML 2.0 foi a adotada pela 
OMG 
O que é Modelagem de Software? 
Atividade responsável por construir modelos que 
expliquem as características e comportamento do 
software 
A modelagem é uma parte central de todas as 
atividades que levam a implantação de um bom 
software 
Um modelo é uma simplificação da realidade 
Construímos modelos para: 
• Comunicar a estrutura e o comportamento desejados do sistema 
• Visualizar e controlar a arquitetura do sistema 
• Compreender melhor o sistema que estamos construindo 
• Gerenciar riscos 
Exemplo de uma Arquitetura de Software Por que Fazer Modelagem? 
Construímos modelos para compreender melhor o 
sistema que estamos desenvolvendo 
Com a modelagem, alcançamos quatro objetivos: 
• Ajudam a visualizar o sistema como ele é ou como desejamos que seja 
• Permitem especificar a estrutura ou comportamento de um sistema 
• Os modelos proporcionam um guia para a construção do sistema 
• Documentam as decisões tomadas 
Não são restritas a grande sistemas 
• Construímos modelos de sistemas complexos porque não é possível 
compreendê-los em sua totalidade 
08/05/2014 
2 
Modelagem Orientada a Objetos 
Existem várias maneiras de se definir um modelo quando 
falamos de software 
As duas maneiras mais comuns são: 
• Perspectiva de um algoritmo (visão tradicional – procedimentos e 
funções) 
• Perspectiva orientada a objetos (visão contemporânea) 
A modelagem orientada a objetos é a mais utilizada pois: 
• Pode ser utilizada em todos os domínios de problemas 
• Todos os graus de tamanho 
• Todos os graus de complexidade 
Ao escolher a modelagem orientada a objetos, 
precisamos saber como iremos realizar a visualização, 
construção e a documentação do sistema 
A UML tem exatamente esse objetivo 
O que é a UML? 
UML (Unified Modeling Language) – é a 
linguagem padrão para especificação, visualização, 
construção e documentação de artefatos de um 
sistema de software 
Linguagem muito expressiva que abrange todas 
as visões necessárias ao desenvolvimento e 
implantação de softwares 
Entretanto, a UML é apenas uma linguagem que 
pode ser usada por um processo de 
desenvolvimento de software 
O que é a UML? 
Ela não nos indica como devemos fazer um 
software, apenas as formas que podem ser 
utilizadas para representar um software em 
diversos estágios de desenvolvimento 
Com a UML, conseguimos “pensar” um software 
em um local e codificá-lo em outro 
UML – Visão Geral 
As linguagens fornecem um vocabulário e as regras 
para a combinação de palavras desse vocabulário 
com a finalidade de comunicar algo 
O vocabulário e as regras da UML indicam como 
criar e ler modelos bem-formados 
Entretanto, a UML não aponta quais/quando 
modelos devem ser criados. Isto cabe a um processo 
de desenvolvimento de software, ex: UP 
Por que UML? 
Automatizar produção de software 
Adicionar qualidade e reduzir custos 
Gerenciar a complexidade de sistemas quando 
estes crescem em escopo e escala 
Resolver problemas de arquitetura: 
• Distribuição física 
• Concorrência 
• Segurança 
• Tolerância a falhas 
• Etc. 
 
Benefícios da UML 
Software desenhado e documentado 
profissionalmente antes de iniciar a codificação. 
Controle do software que você tem 
Maior facilidade para detectar casos de 
reutilização de componentes 
Menor custo de desenvolvimento 
Durante a codificação serão encontrados menos 
erros 
Tomada de decisões antes de iniciar a codificação 
08/05/2014 
3 
Benefícios da UML 
Visão geral mais apurada do software 
Diminuição no custo de manutenção, uma vez que 
é mais fácil entender os diagramas UML do que 
códigos de programas 
Melhor entendimento por parte de novos 
integrantes da equipe de codificação 
 
UML como Linguagem para Visualização 
Algumas coisas são modeladas melhor em forma 
textual (algoritmos, por exemplo). 
No entanto, há estruturas ou comportamentos que 
são melhor visualizadas na forma gráfica 
A UML provê formas gráficas para criação de 
modelos que facilitam a comunicação 
Por trás de cada símbolo gráfico empregado na 
notação da UML existe uma semântica bem definida 
Desta forma, qualquer modelo escrito em UML pode 
ser interpretado da mesma maneira e sem 
ambiguidades por desenvolvedores e ferramentas 
UML como Linguagem para Especificação 
No contexto, especificar significa construir 
modelos precisos, sem ambiguidades e 
completos 
A UML permite uma especificação precisa, 
não ambígua e completa. 
A especificação abrange levantamento e 
análise de requisitos, desenho e 
implementação do desenvolvimento de 
sistemas de software 
UML atende as decisões importantes que 
devem ser tomadas durante o ciclo de 
desenvolvimento de software 
UML como Linguagem para Construção 
A UML não é uma linguagem visual de programação 
mas os modelos podem ser associados a linguagens 
de programação para geração de código. 
• Isso permite que coisas melhor expressas graficamente 
sejam definidas em UML e coisas melhor expressas 
textualmente sejam definidas em linguagens de 
programação 
A UML permite geração de código em uma 
linguagem de programação a partir de modelos: 
engenharia direta. 
A engenharia reversa é também possível se a 
ferramenta provê mecanismos para tal. 
Além disso, a UML pode ser usada para a simulação 
de modelos 
UML como Linguagem para Documentação 
Abrange a documentação da 
arquitetura do sistema e seus detalhes 
Proporciona uma linguagem para 
expressão de requisitos e para 
realização de testes 
Oferece uma linguagem para a 
modelagem das atividades de 
planejamento do projeto e de 
gerenciamento de versões 
Onde a UML pode ser utilizada? 
Destinada principalmente para o desenvolvimento de sistemas 
complexos 
Tem sido utilizada efetivamente nos seguintes domínios: 
• Serviços de informações corporativos 
• Serviços bancários e financeiros 
• Telecomunicações 
• Transportes 
• Defesa/espaço aéreo 
• Venda de varejo 
• Eletrônica Médica 
• Científicos 
• Serviços distribuídos baseados na Web 
 
A UML não é restritiva à modelagem de software 
08/05/2014 
4 
Elementos Principais da UML 
Blocos de 
Construção 
Regras 
Mecanismos 
Comuns 
Elementos Principais da UML 
Blocos de 
Construção 
Regras 
Mecanismos 
Comuns 
Blocos de Construção da UML 
O vocabulário abrange três tipos de blocos de construção 
Itens 
Relacionamentos 
Diagramas 
Blocos de Construção da UML 
Itens 
Relacionamentos 
Diagramas 
Blocos de Construção :: Itens 
São as abstrações identificadas como cidadãos de primeiraclasse em um modelo 
Existem quatro tipos de itens: 
Estruturais 
Comportamentais 
Agrupamentos 
Anotacionais 
Blocos de Construção :: Itens 
Estruturais 
Comportamentais 
Agrupamentos 
Anotacionais 
08/05/2014 
5 
Blocos de Construção :: Itens :: Estruturais 
São os substantivos, parte estática do modelo, 
representando elementos conceituais ou físicos. 
 
Classe
+atributo
+metodo()
Interface
ColaboraçãoCaso de Uso
Classes Ativas
+metodos()
Componentes Nó
Blocos de Construção :: Itens 
Estruturais 
Comportamentais 
Agrupamentos 
Anotacionais 
Blocos de Construção :: Itens :: Comportamentais 
Partes dinâmicas dos modelos de UML 
São os verbos de um modelo, representando 
comportamentos no tempo e no espaço 
Mensagens
Estados
Blocos de Construção :: Itens 
Estruturais 
Comportamentais 
Agrupamentos 
Anotacionais 
Blocos de Construção :: Itens :: Agrupamentos 
São as partes organizacionais dos modelos de UML 
São os blocos em que o modelo pode ser decomposto 
Organiza os objetos da UML em grupos 
 Pacote
Blocos de Construção :: Itens 
Estruturais 
Comportamentais 
Agrupamentos 
Anotacionais 
08/05/2014 
6 
Blocos de Construção :: Itens :: Anotacionais 
São as partes explicativas do modelo 
São comentários, incluídos para descrever, esclarecer e 
fazer alguma observação, sobre qualquer elemento do 
modelo 
Anotação
Blocos de Construção da UML 
Itens 
Relacionamentos 
Diagramas 
Blocos de Construção :: Relacionamentos 
Dependência 
Associação 
Generalização 
Realização 
Esses relacionamentos são os blocos relacionais básicos de 
construção da UML 
São utilizados para escrever modelos bem-formatados 
Existem quatro tipos de relacionamentos: 
Blocos de Construção :: Relacionamentos 
Dependência 
Associação 
Generalização 
Realização 
Blocos de Construção :: Relacionamentos :: Dependência 
Relacionamento semântico entre dois itens, nos quais a 
alteração de um pode afetar o outro 
Dependência
Blocos de Construção :: Relacionamentos 
Dependência 
Associação 
Generalização 
Realização 
08/05/2014 
7 
Blocos de Construção :: Relacionamentos :: Associação 
Relacionamento estrutural que descreve um conjunto de 
ligações (conexões) entre objetos 
Associação
*0..1
Blocos de Construção :: Relacionamentos 
Dependência 
Associação 
Generalização 
Realização 
Blocos de Construção :: Relacionamentos :: Generalização 
Relacionamento entre um item pai e um item filho, no qual o 
item filho herda a estrutura e comportamento do item pai 
Generalização
Blocos de Construção :: Relacionamentos 
Dependência 
Associação 
Generalização 
Realização 
Blocos de Construção :: Relacionamentos :: Realização 
Relacionamento semântico entre dois itens, no qual um 
item apenas especifica os serviços e o outro item executa 
estes serviços 
Realização
Blocos de Construção da UML 
Itens 
Relacionamentos 
Diagramas 
08/05/2014 
8 
Blocos de Construção :: Diagramas 
Diagrama
Diagrama 
Estrutural
Diagrama 
Comportamental
Diagrama de 
Classes
Diagrama de 
Artefato
Diagrama de 
Componentes
Diagrama de 
Implantação
Diagrama de 
Objetos
Diagrama de 
Pacote
Diagrama de 
Atividade
Diagrama de 
Casos de Uso
Diagrama de 
Máquina de 
Estados
Diagrama de 
Interação
Diagrama de 
Sequência
Diagrama de 
Comunicação
Diagrama de 
Temporização
Diagrama de 
Visão Geral 
da Interação
Blocos de Construção :: Diagramas :: Caso de Uso 
Exibe um conjunto de casos de uso (funcionalidades) e 
atores, e seus relacionamentos. São importantes 
principalmente para a organização e a modelagem de 
comportamentos do sistema 
Principais Componentes 
• Ator – usuário ou outro sistema que interage com o sistema em questão 
(agentes externos ao sistema). 
• Caso de Uso – representa uma ação de um Ator no sistema 
Ator
Caso de Uso
Blocos de Construção :: Diagramas :: Classes 
Exibe um conjunto de classes, interfaces e 
colaborações, bem como seus 
relacionamentos. Abrangem uma visão 
estática da estrutura do sistema 
Um dos diagramas mais utilizados 
Representa Classes e interfaces do sistema 
e seus relacionamentos, bem como 
características (atributos) e métodos 
Podem representar objetos do sistema, se 
tornando Diagrama de Objetos 
Também são utilizados de sistemas 
executáveis através da engenharia reversa 
MeioDeTransporte
+capacidade
+tipoCombustivel
Carro
+qtdRodas
Aviao
+qtdTurbinas
Blocos de Construção :: Diagramas :: Objetos 
Exibe um conjunto de objetos e seus relacionamentos em 
um determinado ponto no tempo 
Representa retratos estáticos de instâncias de itens 
encontrados em digramas de classes 
Abrangem um visão estática da estrutura do sistema, mas 
sob perspectiva de casos reais. 
 
Blocos de Construção :: Diagramas :: Componentes 
Exibe um conjunto de componentes e suas propriedades 
Componentes permitem o encapsulamento de partes do 
sistema para reduzir as dependências, torná-las explícitas e 
melhorar a capacidade de substituição e a flexibilidade. 
Blocos de Construção :: Diagramas :: Interação 
Exibe uma interação, que consiste de um conjunto de 
objetos ou papéis, e as mensagens que podem ser trocadas 
entre eles 
Pode ser de três tipos: 
• Diagrama de Sequência 
• Diagrama de Comunicação 
• Diagrama de Temporização 
• Diagrama de Visão Geral de Interação 
08/05/2014 
9 
Blocos de Construção :: Diagramas :: Sequencia 
Descreve a sequencia de mensagens trocadas entre 
objetos do sistema 
Representa as interações entre objetos de um cenário, 
realizadas através de operações ou métodos 
Ênfase está na ordenação temporal das mensagens 
 
Blocos de Construção :: Diagramas :: Comunicação 
Antigo diagrama de colaboração 
Assim como o diagrama de sequencia, mostra a interação 
entre um conjunto de objetos e seus relacionamentos 
A diferença é que este diagrama dá ênfase à organização 
estrutural dos objetos 
 
Blocos de Construção :: Diagramas :: Temporização 
Mostra os tempos reais em diferentes 
objetos ou papéis, em vez de 
sequências de mensagens relativas 
Muito utilizado por engenheiros 
elétricos no uso de demonstração do 
estado de máquinas digitais 
Recomendação de uso: A 
documentação UML 2.0 aconselha que 
pode ser mais cômodo representar a 
mudança de estado de um objeto em 
determinado período de tempo 
Pode-se utilizar o diagrama de estado 
e/ou sequencia. 
Blocos de Construção :: Diagramas :: Visão Geral de Interação 
Híbrido de um diagrama de 
atividades e um diagrama de 
sequência 
Seu objetivo é fornecer uma 
visão geral do controle de 
fluxo 
Blocos de Construção :: Diagramas :: Atividades 
Exibe o fluxo de controle de 
uma atividade para outra, 
concorrências e ramificações 
de controle. 
Enquanto os diagramas de 
interação dão ênfase ao fluxo 
de controle de um objeto para 
outro, os diagramas de 
atividades dão ênfase ao fluxo 
de controle de uma atividade 
(etapa) para outra. 
Blocos de Construção :: Diagramas :: Máquina de Estados 
Exibe uma máquina de 
estados, formada por estados, 
transições, eventos e 
atividades. 
Máquina de estados é um 
comportamento que especifica 
as seqüências de estados 
pelas quais um objeto passa 
durante seu tempo de vida em 
resposta a eventos, 
juntamente com respostas a 
esses eventos. 
08/05/2014 
10 
Blocos de Construção :: Diagramas :: Implantação 
Mostra a configuraçãodos 
nós de processamento em 
tempo de execução e os 
componentes neles existentes 
Determina as necessidades 
de hardware do sistema, 
características físicas como 
servidores, estações, 
topologias e protocolos de 
comunicação 
Blocos de Construção :: Diagramas :: Artefatos 
Mostra a organização e as 
dependências existentes entre 
um conjunto de artefatos. 
Envolve a modelagem de 
itens físicos que residem em 
um nó, como executáveis, 
bibliotecas, tabelas, arquivos e 
documentos. 
Blocos de Construção :: Diagramas :: Pacotes 
Mostra a decomposição do 
sistema em unidades 
organizacionais e suas 
dependências 
Elementos Principais da UML 
Blocos de 
Construção 
Regras 
Mecanismos 
Comuns 
Regras da UML 
Os Blocos de Construção não podem ser simplesmente 
combinados de forma aleatória 
A UML tem um conjunto de regras que especificam o que 
deverá ser um modelo bem-formado 
Os modelos bem-formados são aqueles auto-consistentes 
semanticamente e em harmonia com todos os modelos a eles 
relacionados 
Regras da UML 
Nomes: quais nomes podem ser atribuídos a itens, 
relacionamentos e diagramas 
Escopo: o contexto que determina um significado específico 
para um nome 
Visibilidade: como esses nomes podem ser vistos e utilizados 
pelos outros 
Integridade: como os itens se relacionam entre si de forma 
adequada e consistente 
Execução: o que significa executar ou simular um modelo 
dinâmico 
08/05/2014 
11 
Regras da UML 
No entanto, modelos são complexos, evoluem e envolvem 
vários tipos de pessoas de diversas maneiras e em tempos 
diferentes. 
Sendo assim, é comum, em determinados momentos, 
modelos não bem formados que são: 
Parciais 
• Alguns elementos são escondidos para simplificar uma visão 
Incompletos 
• Alguns elementos podem estar faltando 
Inconsistentes 
• A integridade do modelo não é garantida 
Elementos Principais da UML 
Blocos de 
Construção 
Regras 
Mecanismos 
Comuns 
Mecanismos Comuns 
Existe um conjunto de mecanismos comuns que pode ser 
utilizado, independentemente do diagrama 
Especificações 
Adorno 
Divisão Comum 
Mecanismos 
de Extensão 
Mecanismos Comuns :: Especificações 
A UML não é só uma 
linguagem gráfica – por trás 
de toda parte gráfica há uma 
especificação que define a 
sintaxe e semântica de um 
elemento 
Por exemplo, uma classe 
pode ser mostrada na forma 
de ícone ou na forma 
convencional com um ou mais 
compartimentos mas a 
especificação a ela associada 
é sempre a mesma 
ClasseA
ClasseB
Mecanismos Comuns :: Adorno 
A UML oferece notações gráficas 
que proveem uma representação 
visual dos aspectos mais 
importantes de um elemento 
Adornos podem ser adicionadas a 
essas representações para 
acrescentar detalhes 
Exemplos: 
• Identificar se uma classe é abstrata 
(nome da classe em itálico), 
• Identificar a visibilidade de operações 
(“+” – pública, “#” – protegida ou “-” – 
privada; antes do nome da operação) 
Relogio
+marca
#tipo
-horario
+data
+mostrarHora()
+acertar()
+mudarDisplay()
+zerarCronometro()
+iniciarCronometro()Relogio
+mostrarHora()
+acertar()
+mudarDisplay()
+zerarCronometro()
+iniciarCronometro()
Relogio
+marca
#tipo
-horario
+data
Relogio
+marca
#tipo
-horario
+data
+mostrarHora()
+acertar()
+mudarDisplay()
+zerarCronometro()
+iniciarCronometro()
Mecanismos Comuns :: Divisão Comum 
Na modelagem OO, o mundo costuma ser divido pelo 
menos de duas maneiras: 
• 1º Divisão de Classes e Objetos – uma classe é uma abstração, um 
objeto é uma manifestação concreta dessa abstração 
• 2º Separação de Interface e Implementação – uma interface declara 
um contrato, e a implementação representa uma realização completa 
desse contrato 
IUnknown
ISpelling
spellingwizard.dll
Aluno
-nome
-endereco
-sexo
fernanda : Aluno
jose : Aluno
andre : Aluno
08/05/2014 
12 
Mecanismos Comuns :: Mecanismos de 
Extensão 
Mecanismos que permitem estender a linguagem de uma 
maneira controlada 
Existem 3 mecanismos de extensão: 
• Estereótipos 
• Valor Atribuído (Tagged Value) 
• Restrições (constraints) 
Mecanismos Comuns :: Mecanismos de Extensão 
Estereótipos – amplia o vocabulário da UML, descreve 
nova semântica aos elementos já existentes 
Pode-se criar novos ícones para representar esses 
elementos em um forma gráfica individualizada. 
Gerente
Funcionário Técnico
<<Actor>>
Mecanismos Comuns :: Mecanismos de Extensão 
Valor Atribuído (Tagged Value) – estende as propriedades 
dos blocos de construção, permitindo a criação de novas 
informações na especificação de um elemento 
 
Cliente
{Persistence = PERSISTENT}
LeitoraCartao
{Persistence = TRANSITORY}
Mecanismos Comuns :: Mecanismos de Extensão 
Restrições (constraints) – amplia as semânticas dos 
blocos de construção, permitindo acrescentar novas regras 
ou modificar as já existentes 
Pessoa Empresa
+Diretor
13
+Funcionário
11..*
{subset}

Outros materiais