• Nenhum resultado encontrado

UML

N/A
N/A
Protected

Academic year: 2021

Share "UML"

Copied!
63
0
0

Texto

(1)

Engenharia de Software

Engenharia de Software

Introdução à UML

João

João RochaRocha joao@uefs.br

joao@uefs.br

http://

(2)

Importância da Modelagem

Importância da Modelagem

 Comunicar a estrutura e o comportamento

desejado

 Visualizar e controlar a arquitetura do

sistema

 Compreender melhor o sistema que estamos

elaborando

(3)

Modelagem na Eng. Software

Modelagem na Eng. Software

 “Um modelo é uma simplificação

da realidade”

 Quatro Objetivos da modelagem:

(1) Visualizar o sistema

(2) Especificar a estrutura ou o comportamento (3) Guiar para a construção do sistema

(4)

Princípios básicos da modelagem

Princípios básicos da modelagem

 A escolha dos modelos implica na maneira

como o problema é atacado

 Cada modelo pode ser expresso em

diferentes níveis de precisão

 Os melhores modelos estão relacionados com

a realidade

 A simplificação não deve ocultar detalhes

importantes

(5)

Modelagem orientada a objetos

Modelagem orientada a objetos

 Um objeto é algo estruturado a partir do

vocabulário do problema

 Todos os objetos possuem

 Uma identidade

 nome ou modo de diferenciá- lo

 Um estado

 dados associados

(6)

UML

UML

 “A UML é uma linguagem para a elaboração

da estrutura de projetos de software”

 Visualização

 Semântica bem definida

 Especificação

 Permite construir modelos sem ambigüidades

 Construção

 É possível gerar código a partir dos modelos

(7)

Regras da UML

Regras da UML

 Os blocos de construção não podem ser

combinados aleatoriamente

 Dispõe de regras para

 Nomes  Escopo

 Visibilidade  Integridade  Execução

(8)

Mecanismos básicos da UML

Mecanismos básicos da UML

 Especificações

 Fornece um repertório semântico, contendo todas

as partes de todos os modelos de determinado sistema

 Adornos

 Divisões comuns

(9)

Adornos

Adornos

 Variedade de alterações (enfeites) que podem

ser adicionados aos elementos básicos

 Ex: Transaction + execute() + rollback() # priority() - timestamp()

(10)

Divisões comuns

Divisões comuns

 Mecanismos utilizados para diferenciar blocos

de construções comuns Cliente nome endereco telefone Joao : Cliente : Cliente

(11)

Mecanismos de Extensão

Mecanismos de Extensão

 Estereótipos

 Ampliação do vocabulário (ex: novos blocos)

 Valores atribuídos

 Estender as propriedades dos blocos (ex: versão)

 Restrições

 Estende a semântica (ex: criar novas regras)

 Ex: <<exception>> Overflow EventQueue {version 1.0} {ordered}

(12)

Três elementos principais de UML

Três elementos principais de UML

 Blocos de construção básicos

 Itens: abstrações identificadas

 Relacionamentos: permite reunir os itens  Diagramas: agrupam coleções de itens

 Regras que determinam como os blocos

poderão ser combinados

 Regras semânticas para nomes, escopo,

visibilidade, integridade e execução

(13)

Itens

Itens

 Estruturais

 São as partes estáticas do modelo

 Comportamentais

 São as partes dinâmicas

 Agrupamentos

 São as partes organizacionais

 Anotacionais

(14)

Itens Estruturais

Itens Estruturais

 São os substantivos utilizados em modelos

da UML  Classes  Interfaces  Colaborações  Casos de Uso  Classes Ativas  Componentes Nós

(15)

Classes

Classes

 Conjuntos de objetos que compartilham os

mesmos atributos, operações, relacionamentos e semântica

 Implementam uma ou mais interfaces  Graficamente: Conta saldo:double Número:String debitar(valor:double):void creditar(valor:double):void

(16)

Interfaces

Interfaces

 Coleção de operações que especificam

serviços de uma classe ou componente

 Descreve o comportamento externamente

visível desse elemento

 Graficamente:

(17)

Colaborações

Colaborações

 Interações e sociedades de papéis que

funcionam em conjunto para proporcionar um comportamento cooperativo

 Representam a implementação de padrões

que formam um sistema

 Graficamente:

Cadeia de

(18)

Caso de uso

Caso de uso

 Ações realizadas pelo sistema que

proporcionam resultados visíveis para um ator

 É utilizado para estruturar o comportamento de

itens em um modelo

 Graficamente:

(19)

Classes Ativas

Classes Ativas

 São classes cujos objetos têm um ou mais

processos ou threads

 Os objetos dessa classe representam

elementos cujo comportamento é concorrente com o de outros elementos

 Graficamente:

Timer getTime()

(20)

Componentes

Componentes

 São partes físicas e substituíveis de um

sistema

 Proporcionam a realização de um conjunto de

interfaces

 Graficamente:

(21)

Nós

Nós

 Elemento físico existente em tempo de

execução que representa um recurso computacional

 Um conjunto de componentes poderá estar

contido em um nó

 Graficamente:

(22)

Outros Itens…

Outros Itens…

 Comportamentais

 São as partes dinâmicas dos modelos UML

 Interação

 Máquina de estado

 Agrupamento

 São as partes organizacionais

 Pacotes

 Anotacionais

(23)

Interação (Comportamental)

Interação (Comportamental)

 Mensagens trocadas entre um conjunto de

objetos para realização de propósitos específicos

 Representada como uma linha cheia com

seta, quase sempre incluindo o nome de suas operações

 Graficamente:

(24)

Máquina de estado (comportamental)

Máquina de estado (comportamental)

 Especifica as seqüências de estados pelas

quais objetos ou interações passam durante sua existência.

 Graficamente:

(25)

Pacote (Agrupamento)

Pacote (Agrupamento)

 Organização de elementos em grupos. Itens

estruturais e comportamentais podem ser colocados em pacotes

 Um pacote é puramente conceitual.

 Componentes não podem ser colocados em

pacotes

(26)

Notas (

Notas (

Anotacionais

Anotacionais

)

)

 Símbolo para representar restrições e

comentários anexados a um elemento ou a

uma coleção de elementos

 Graficamente:

(27)

Relacionamentos

Relacionamentos

 Existem quatro tipos de relacionamentos na

UML

 Dependência  Associação

 Generalização  Realização

 Você utilizará esses relacionamentos para

(28)

Dependência

Dependência

 Relacionamento semântico entre dois itens,

nos quais a alteração de um pode afetar a semântica do outro

 Pode ter um texto explicativo  Graficamente:

(29)

Associação

Associação

 Relacionamento estrutural que descreve um

conjunto de ligações entre objetos

 Agregação

 Partes e todo

 Composição

 Partes e todo, onde cada parte só pertence a um

todo e sua existência está condicionada ao dono

 Graficamente:

(30)

Generalização

Generalização

 Relacionamento no qual os objetos dos

elementos especializados (os filhos) são substituíveis por objetos do elemento

generalizado (os pais)

 Os filhos compartilham a estrutura e o

comportamento dos pais

(31)

Realização

Realização

 Relacionamento semântico entre elementos,

em que um elemento especifica um contrato que outro elemento garante executar

 A realização é encontrada entre as interfaces

e as classe e componentes que as realizam

(32)

Diagramas na UML

Diagramas na UML

 Representação gráfica de um conjunto de

elementos, geralmente representados como gráficos de vértices (itens) e arcos

(relacionamentos)

 Permitem a visualização de um sistema sob

diferentes perspectivas

 Pode conter qualquer combinação de itens e

(33)

Diagramas UML

Diagramas UML

 Casos de uso  Interação  Seqüência  Colaboração  Classes  Objetos  Estados  Atividades  Componentes

(34)

Diagrama

Diagrama

de

de

Caso

Caso

de

de

Uso

Uso

 Objetivo principal é identificar um cenário

evidênciando os atores e ações (caso de uso)

 Um Ator é alguém ou alguma coisa que

interage com o sistema a ser desenvolvido

 Exemplos

 Cada caso de uso representa uma “ação” que

pode ser realizada por um ator

Estudante

(35)

Exemplo

Exemplo

Receber ligação Fazer ligação Rede Celular Uso programado Receber Ligação adicional Fazer Conferência Telefone Celular

(36)

Ouras

Ouras

relações

relações

 A medida que os casos de uso são construídos,

outras relações podem ser exploradas

Comprar produto

(37)

Diagramas

Diagramas

de

de

interação

interação

 Diagramas de interação descrevem como os

casos de uso são “realizados” e a interação entre os objetos

 São importantes somente para a modelagem

de aspectos dinâmicos do sistema

 Construir roteiros de cenários

(38)

Diagrama

Diagrama

de

de

seqüência

seqüência

 Exibe a interação entre os objetos

(39)

Outro exemplo...

Outro exemplo...

:Thread :Toolkit :ComponentPeer :HelloWorld

run

handleExpose callbackLoop

(40)

Diagrama

Diagrama

de

de

colaboração

colaboração

 Dá ênfase aos relacionamentos estruturais

1: <<create>>

2: setActions(a, b, c) 3: <<destroy>>

(41)

Diagrama

Diagrama

de

de

seqüência

seqüência

X

X

colaboração

colaboração

 Diagrama de sequência

 Existe uma linha de vida do objeto

 Foco no controle. É possível visuzalir o o período

durante o qual um objeto está desempenhando uma ação.

 Diagrama de colaboração

 Existe um caminho entre objetos que se

relacionam

 Existe um número de sequencia para indicar a

(42)

Diagramas

Diagramas

de

de

classe

classe

 Exibe as classes e suas relações

 Devem ser nomeadas utilizando vocabulário do

domínio da aplicação

 É composto por classes e relacionamentos  Pode ter várias visões

Re gistro Ve nda -data: long -foiFechada: Boolean Captura 1 1 Visão conceitual

(43)

Atributos

Atributos

versus

versus

Associação

Associação

 A estrutura (estado) da classe é representada

pelos seus atributos

 Use atributos para para representar dados  Use associação para representar navegação

Register -id: int +endSale() +addItem() Sale -data: long -foiFechada: Boolean -currentSale 1 Store -location Item -items 1..*

(44)

Herança

Herança

 Herança é uma relação entre a superclasse e

suas subclasses

 Existem duas formas de “visualizar” a herança:

 Como generalização  Como especialização

(45)

Realização

Realização

(interfaces)

(interfaces)

Window1 Timer Clock2 +getTime() Timer <<interface>> +getTime() Clock3 Window2 Clock2 +getTime() Timer

(46)

Associaçao

Associaçao

X

X

dependência

dependência

 Dependência

 Um elemento (cliente) tem conhecimento de outro

(fornecedor) e uma mudança no fornecedor pode

alterar o cliente!

 Existem diversos tipos de dependência

 Ter um atributo do fornecedor (associação)

 Enviar mensagem ou utilizar um método do fornecedor

 Receber um parâmetro do fornecedor (realização)

 O fornecedor pode ser uma super- classe (herança)

(47)

Exemplo

Exemplo

Register -id: int +endSale() +addItem() +makePayment() Sale -data: long -foiFechada: Boolean -currentSale 1 Store -location 1 Item -items 1..* ProductDescription

(48)

Composição

Composição

e

e

Agregação

Agregação

 Agregação

 Tipo de associação vago que indica “parte e todo”  Existe em UML apenas para referenciar

Rumbaugh

 Composição

 Tipo de associação forte e útil para alguns

modelos

 Uma instância de uma parte pertence somente a

(49)

Classe

Classe

Associativa

Associativa

 Permite tratar uma associação como se fosse

uma classe Empresa Funcionário * * Emprego -salario -dataInicio

(50)

Diagrama

Diagrama

de

de

Objetos

Objetos

 Objetivo

 Descrever um exato momento de um sistema

r : Register

(51)

Diagrama

Diagrama

de

de

Estado

Estado

 Exibe

 As transações de estado de um objeto  A história de uma classe

 Os eventos que causam a transição de um estado

para outro

 As ações que resultam da troca de estado

 Devem ser construídos para objetos que

possuem um comportamento dinâmico significativo

(52)

Exemplo

(53)

Diagrama

Diagrama

de

de

Atividades

Atividades

 Apresenta uma sequencia de

ações, onde algumas podem ser executadas em paralelo

 Muito bom para descrever

processos, exibe:

 Ações

 Objetos produzidos por uma ação  Diferentes partes que compõem o

(54)

Diagrama

Diagrama

de

de

Componentes

Componentes

 Um componente é uma parte subistituível que

atende e prover um conjunto de interfaces

 Uma interface é um conjunto de operações

que especificam um serviço

 Uma porta é uma janela dentro do

componente permitindo definir que itens serão acessados Ticket Seller <<component>> charging charging Ticket Seller <<component>>

(55)

Exemplo

(56)

Exemplo

Exemplo

W eb <<component>> <<Servlet>> SrvLogin <<Servlet>> SrvCa lendar <<Servlet>> SrvSe arch <<Servlet>> SrvShopping <<Servlet>> SrvNew s <<Servlet>> SrvQuota tion <<Servlet>> xm l (Ajax) SearchEJB <<bean>> Mana gerEJB <<bean>> New sEJB <<bean>> ShoppgingEJB <<bean>> Calenda rEJB <<bean>> Quota tionEJB <<bean>> Mana ger Se arch New s Cale nda r Quotation MailEJB <<bean>> Se archDB <<database>> ShoppgingDB <<database>> New sDB <<database>> Use rDB <<database>> Calenda rDB <<database>> JDBC http <<tier>> Cliente

<<tier>> W eb <<tier>> EJB

<<tier>> Backend

http Brow se r

Ma il Shopping

(57)

Diagrama

Diagrama

de

de

Pacotes

Pacotes

<<camada>> A

 A relação de dependência é utilizada para

descrever arquitetura em camadas

(58)

Exemplo

(59)

Exemplo

(60)

Exemplo

(61)

Diagrama

Diagrama

de

de

implantação

implantação

 Mostra a configuração dos processos em

tempo de execução

 Permite visualizar a distribuição dos

(62)

Referências

Referências

Grady Booch, James Rumbaugh, Ivar

Jacobson. “The Unified Modeling Language

User Guide”, 2005.

Martin Fowler. “UML Distilled”. 3a. Ed, 2004

Graig Larman.”Applying UML and Patterns” ,3a.

Ed, 2005.

Dan Pilone, Neil Pitman. “UML 2.0 in a Nutshel”,

(63)

Engenharia de Software

Engenharia de Software

Introdução à UML

João

João RochaRocha joao@uefs.br

joao@uefs.br

http://

Referências

Documentos relacionados

Este novo banco terá sua sede em Xangai na China e tem como intuito financiar projetos de infraestrutura e desenvolvimento sustentável, não apenas para os países

A Diretoria de Recursos Humanos da EJEAmb – Empresa Júnior de Engenharia Ambiental, composta por Cássia Vieira de Oliveira, Leonardo Alfredo Handy Bevilacqua, Letícia Teixeira

• Casos de uso representam funcionalidades completas para o usuário e não, funcionalidades internas do sistema. • Outro ponto importante é que o diagrama de casos de uso é

(b) Para esta constante da mola, qual seria a frequência natural de vibração vertical da plataforma carregada pelo caminhão de 40

Montar 3 placas de petri (Figura 2): Colocar algodão (ou papel de filtro) no fundo das placas de Petri e rotulá-las de acordo com o tratamento que será realizado (água, ácido

Bata a mistura até obter a textura desejada (quanto mais bater, mais homogênea ficará a mistura, mas não bata demais porque o papel se tornará quebradiço). Figura 2: Papel picado

Fechar o outro terrário com um tecido (Figura 6) que permita a passagem do vapor d’água, mas não a de insetos, como o Voil, prendendo as extremidades com fita adesiva.. Deixe uma

Consumo de nutrientes (g/cab/dia) Ingredientes PB NDT MS Milho (grão) Soja (grão) Uréia I Sulfato de amônio 1 Mistura mineral I 188 214 351 19 1.. Da mesma