112
Introdução a Modelagem com UML Introdução a Modelagem com UML https://www.facebook.com/alvarofpinheiroaulas/ br.linkedin.com/in/alvarofpinheiro/ http://www.alvarofpinheiro.eti.br

Análise e Modelagem com UML

Embed Size (px)

Citation preview

Page 1: Análise e Modelagem com UML

Introdução a Modelagem com UMLIntrodução a Modelagem com UML

https://www.facebook.com/alvarofpinheiroaulas/br.linkedin.com/in/alvarofpinheiro/

http://www.alvarofpinheiro.eti.br

Page 2: Análise e Modelagem com UML

O que é a UML?A Unified Modeling Language (UML) é a sucessora de uma onda de métodos para análise e projeto orientados a

objetos que surgiram no fim da década de 80. Ela unificou os métodos proposto por Booch, Rumbaugh (OMT) e Jacobson. Atualmente a UML é um padrão mantido pela OMG, o que dá a ela uma um status de ser considerada a linguagem padrão para modelagem de sistemas. A UML é a linguagem padrão para visualizar, especificar, construir e documentar artefatos de um sistema de software e combina diversos aspectos como:

• Modelagem de Dados• Modelagem de Negócios• Modelagem de Objetos• Modelagem de Componentes

É importante enfatizar que UML é uma linguagem de modelagem, ou seja, é uma forma de especificar um sistema de maneira visual. Ela é a linguagem padrão de modelagem adotada pelo Rational Unified Process (RUP) e seu grande sucesso se deu em conjunto com a popularização do RUP. Por isso, é muito comum que as pessoas associem UML ao RUP. É importante distinguir muito bem, visto que as duas representam conceitos complementamente diferentes. O RUP é um processo, ou seja, um conjunto de atividades, com seus respectivos artefatos e pápeis, para se desenvolver produtos de software. Já a UML é uma linguagem para se modelar o comportamento e estrutura de um sistema.

14/12/14 http://www.alvarofpinheiro.eti.br 2

Introdução a UMLIntrodução a UML

Page 3: Análise e Modelagem com UML

Como surgiu a UML?Durante os anos 80, várias linguagens de programação se popularizaram, entre elas uma que se destacou foi a Smalltalk, mas outras

linguagens também participaram deste movimento, tais como, Objective C, C++ e Eiffel. Seguindo esta onda, os métodos orientados a objetos começaram a ser publicados. Em 1988 Shlaer et al [Shlaer-88] ; em 1990, Wirfs-Brock [Wirfs-Brock-90]; em 1991, Coad e Yourdon [Coad-91]; ainda em 1991, Booch [Booch-91] ; e Rumbaugh [Rumbaugh-91].

A primeira tentativa de sucesso de se criar uma linguagem unificada aconteceu quando Rumbaugh se juntou a Booch na Rational Software Corporation em 1994. Eles começaram a combinar conceitos de OMT com os métodos de Booch, produzindo um método unificadi. Neste mesmo momento Jacobson também se juntou a Rational e começou a trabalhar com Booch e Rumbaugh. O trabalho conjunto resultou no que foi chamado de Unified Modeling Language (UML). Este foi um momento único, quando os autores dos três principais métodos trabalharam juntos para unificar suas propostas. Em 1996, a Object Management Group (OMG) fez uma chamada por propostas par um padrão para modelagem orientada a objetos. Ao autores da UML começaram a trabalhar com metodologistas e desenvolvedores de outras empresas para produzir uma proposta atrativa para os membros da OMG, assim como para as empresas de ferramentas, metodologistas e desenvolvedores em geral. No final de 1997, se tornou um padrão da OMG e até hoje vem sendo mantida e evoluída, sendo hoje bem aceita por toda a comunidade de desenvolvimento de software.

[Shlaer-88] Sally Shlaer, Stephen J. Mellor. Object-Oriented Systems Analysis: Modeling the World in

Data. Yourdon Press, Englewood Cliffs, N.J., 1988

[Wirfs-Brock-90] Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener. Designing Object-

Oriented Software. Prentice Hall, Englewood Cliffs, N.J., 1990.

[Coad-91] Peter Coad, Edward Yourdon. Object-Oriented Analysis, 2nd ed. Yourdon Press,

Englewood Cliffs, N.J., 1991.

[Booch-91] Grady Booch. Object-Oriented Analysis and Design with Applications, 1st ed. Benjamin/

Cummings, Redwood City, Calif., 1991.

[Rumbaugh-91] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William

Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, N.J., 1991.

14/12/14 http://www.alvarofpinheiro.eti.br 3

Introdução a UMLIntrodução a UML

Page 4: Análise e Modelagem com UML

Como foi a evolução da UML?

14/12/14 http://www.alvarofpinheiro.eti.br 4

Nov ‘97 UML aprovada pelo OMG

Introdução a UMLIntrodução a UML

Page 5: Análise e Modelagem com UML

Quais os objetivos da UML?

UML tem como propósito ser uma linguagem para:

Visualizar sistemas orientados a objetos

Especificar sistemas orientados a objetos

Construir sistemas orientados a objetos

Documentar sistemas orientados a objetos

14/12/14 http://www.alvarofpinheiro.eti.br 5

Introdução a UMLIntrodução a UML

Page 6: Análise e Modelagem com UML

O que é OO?O paradigma OO utiliza uma perspectiva mais humana de observação da realidade, incluindo

objetos, classificação e compreensão hierárquica. Entre os principais benefícios podemos citar:

• Único paradigma (Tudo é baseado em classes)• Facilita o reuso de código e arquitetura• Reflete o mundo real• Estabilidade

• “Pequenas mudanças nos requisitos exigem poucas mudanças no código”

14/12/14 http://www.alvarofpinheiro.eti.br 6

“Orientação à objetos é uma estratégia para organizar sistemas como coleções de objetos que interagem entre si e combinam dados e comportamento”

Introdução a UMLIntrodução a UML

Page 7: Análise e Modelagem com UML

Quais os princípios básicos da OO?

14/12/14 http://www.alvarofpinheiro.eti.br 7

Abstração EncapsulamentoModularidade Hierarquia

Orientação à Objetos

Introdução a UMLIntrodução a UML

Page 8: Análise e Modelagem com UML

O que é um Objeto?

“Um objeto é um conceito, abstração ou coisa com limites e significado para uma aplicação”

Um objeto deve ter:Estado

Comportamento

Identidade única

14/12/14 http://www.alvarofpinheiro.eti.br 8

Introdução a UMLIntrodução a UML

Page 9: Análise e Modelagem com UML

O que é um Sistema OO?

Um sistema orientado a objetos pode ser visto como um conjunto de objetos correlacionados, com interfaces e comportamento bem definidos, que colaboram-se entre si pra atender ao objetivo do sistema.

14/12/14 http://www.alvarofpinheiro.eti.br 9

Introdução a UMLIntrodução a UML

Page 10: Análise e Modelagem com UML

Quais os conceitos básicos da OO?

Objeto

ClasseAtributo

Operação

Interface (Polimorfismo)

Herança

Pacote

Relacionamentos

14/12/14 http://www.alvarofpinheiro.eti.br 10

Introdução a UMLIntrodução a UML

Page 11: Análise e Modelagem com UML

Quais são os diagramas da UML?Diagrama de classesDiagrama de classesDiagrama de objetosDiagrama de objetosDiagrama de pacotesDiagrama de pacotesDiagrama de estrutura compostaDiagrama de estrutura compostaDiagrama de casos de usoDiagrama de casos de usoDiagrama de componentesDiagrama de componentesDiagrama de distribuiçãoDiagrama de distribuiçãoDiagrama de máquina de estadosDiagrama de máquina de estadosDiagrama de atividadesDiagrama de atividadesDiagrama de interaçãoDiagrama de interação

Diagrama de seqüênciaDiagrama de seqüênciaDiagrama de colaboraçãoDiagrama de colaboraçãoDiagrama de TempoDiagrama de TempoDiagrama Geral de InteraçãoDiagrama Geral de Interação

14/12/14 http://www.alvarofpinheiro.eti.br 11

Introdução a UMLIntrodução a UML

Page 12: Análise e Modelagem com UML

O que é diagrama de classe?Um diagrama de classes mostra um conjunto de classes, interfaces e relacionamentos entre

estes. Este é o diagrama mais comum encontrado na modelagem de sistemas orientados a objetos e dá uma visão estática da estrutura do sistema.

14/12/14 http://www.alvarofpinheiro.eti.br 12

Introdução a UMLIntrodução a UML

Page 13: Análise e Modelagem com UML

O que são classes?

Classes especificam a estrutura e o comportamento dos objetosClasses são como "moldes" para a criação de objetos

Classes são compostas por:Nome

Atributos (Estrutura)

Métodos (Comportamento)

14/12/14 http://www.alvarofpinheiro.eti.br 13

Introdução a UMLIntrodução a UML

Page 14: Análise e Modelagem com UML

Um exemplo de classe

14/12/14 http://www.alvarofpinheiro.eti.br 14

Classe

CursoPropriedades

NomeLocalizaçãoDuraçãoCréditos

Comportamento

Adicionar um alunoRemover um alunoAtribuir professorAtribuir sala

Introdução a UMLIntrodução a UML

Page 15: Análise e Modelagem com UML

Como se representa uma classe?

Como se pode perceber a representação em UML abstrai elementos sintáticos específicos de uma linguagem de programação. Um classe em UML pode ser mapeada para classes em qualquer linguagem de programação orientada a objetos.

14/12/14 http://www.alvarofpinheiro.eti.br 15

Professor

Introdução a UMLIntrodução a UML

Page 16: Análise e Modelagem com UML

O que são atributos?Um atributo é uma propriedade de uma classe, identificada por um nome, que descreve as

informações ou propriedades (valor, tipo, visibilidade, etc.) que as instancias desta classe (objetos) devem ter. Uma classe pode ter um número qualquer de atributos (inclusive zero).

14/12/14 http://www.alvarofpinheiro.eti.br 16

•Nome = Análise I•Localização = MAC•Duração = 30h•Créditos = 2

•Nome = Análise II•Localização = MAC•Duração = 15h•Créditos = 4

•Nome = SI•Localização = MAC•Duração = 30h•Créditos = 2

Curso

•Adicionar um aluno•Remover um aluno•Atribuir professor•Atribuir sala

•Nome•Localização•Duração•Créditos

Introdução a UMLIntrodução a UML

Page 17: Análise e Modelagem com UML

Atributos na UML são?

14/12/14 http://www.alvarofpinheiro.eti.br 17

Professor

titulonome

Classe

Pessoa

idade: intnome: String

Nome do Atributo

Classe

Tipo do Atributo

Nome do Atributo

Introdução a UMLIntrodução a UML

Page 18: Análise e Modelagem com UML

Exemplo em CSharp ou Java

14/12/14 http://www.alvarofpinheiro.eti.br 18

classclass Pessoa { Pessoa {intint idade; idade;string nome;string nome;

}}

......Pessoa p1 = new Pessoa();Pessoa p1 = new Pessoa();Pessoa p2 = new Pessoa();Pessoa p2 = new Pessoa();

p1.nome = “Marília”;p1.nome = “Marília”;P2.nome = “Gabriel”;P2.nome = “Gabriel”;

Introdução a UMLIntrodução a UML

Page 19: Análise e Modelagem com UML

O que são operações?Uma operação é a implementação de um serviço que pode ser solicitado a qualquer objeto

da classe para afetar o seu comportamento. Em outras palavras, operações são ações que podem ser executadas sobre instâncias das classes. Uma classe pode ter qualquer número de operações (inclusive zero).

14/12/14 http://www.alvarofpinheiro.eti.br 19

• temperatura = 23 • alarme = 50SensorDeTemperatura

•reiniciar•definirAlarme•lerTemperatura

•temperatura•alarme

• temperatura = 50 • alarme = 100

• temperatura = 20 • alarme = 5

Introdução a UMLIntrodução a UML

Page 20: Análise e Modelagem com UML

Exemplo de operação em UML

14/12/14 http://www.alvarofpinheiro.eti.br 20

SensorTemperatura

reiniciar()definirAlarme()lerTemperatura()

Especificação das operações

SensorTemperatura

reiniciar()definirAlarme(temper: int)lerTemperatura(): int

Introdução a UMLIntrodução a UML

Page 21: Análise e Modelagem com UML

Exemplo de operações em CSharp ou Java

14/12/14 http://www.alvarofpinheiro.eti.br 21

public classpublic class sensorDeTemperatura { sensorDeTemperatura { int temperatura;int temperatura; int alarme;int alarme;

public void reiniciar(){public void reiniciar(){ temperatura = 0;temperatura = 0; }}

public int lerTemperatura(){public int lerTemperatura(){ return temperatura;return temperatura; }}

public void definirAlarme(public void definirAlarme( int temper){int temper){ alarme = temper;alarme = temper; }}}}

SensorTemperatura

reiniciar()definirAlarme(temper: int)lerTemperatura(): int

Introdução a UMLIntrodução a UML

Page 22: Análise e Modelagem com UML

Resumindo, um classe é formada por?

14/12/14 http://www.alvarofpinheiro.eti.br 22

Nome da Classe DVD

Atributos Operações

HoraStatus estrutura

comportamentoVoltar()Pausar()Adiantar()Parar()Tocar()

Introdução a UMLIntrodução a UML

Page 23: Análise e Modelagem com UML

O que é polimorfismo?O polimorfismo é a habilidade de esconder diferentes implementações através de uma única

interface. Interfaces formalizam polimorfismo, aumentam o nível de reusabilidade, viabilizam o uso de componentes e reduzem o esforço de evolução da aplicação.

Uma interface pode ser vista como uma coleção de operações que são usadas para especificar os serviços de uma classe.

14/12/14 http://www.alvarofpinheiro.eti.br 23

Fabricante A Fabricante B Fabricante C

Introdução a UMLIntrodução a UML

Page 24: Análise e Modelagem com UML

Segue um exemplo de Interface

14/12/14 http://www.alvarofpinheiro.eti.br 24

parar()parar()

pausar()pausar()

avancar()avancar()

voltar()voltar()

alterarHora()alterarHora()

tocar()tocar()

carregarDisco()carregarDisco()

Introdução a UMLIntrodução a UML

Page 25: Análise e Modelagem com UML

Mais sobre Interface

Interfaces definem um tipo especificando apenas a assinatura de seus métodos

Interfaces não possuem atributos e seus métodos não têm corpo

Classes implementam interfacesprovêem implementação para os métodos especificados

em uma interface

14/12/14 http://www.alvarofpinheiro.eti.br 25

Introdução a UMLIntrodução a UML

Page 26: Análise e Modelagem com UML

Segue a forma icônica da Interface na UML

14/12/14 http://www.alvarofpinheiro.eti.br 26

Forma

Relacionamentos de realização

Tubo

Piramide

Cubo

Introdução a UMLIntrodução a UML

Page 27: Análise e Modelagem com UML

Segue forma canônica de Interface na UML

14/12/14 http://www.alvarofpinheiro.eti.br 27

Cubo

Tubo

Piramide

DesenharMoverRotacionar

<<interface>>Forma

Relacionamentos de realização

Introdução a UMLIntrodução a UML

Page 28: Análise e Modelagem com UML

Exemplo de Interface em CSharp

14/12/14 http://www.alvarofpinheiro.eti.br 28

interfaceinterface DVD { DVD {void voltar();void voltar();void avancar();void avancar();void parar();void parar();void tocar();void tocar();

}}

class DVDSony: DVD{class DVDSony: DVD{void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}

}}

class DVDGradiente: DVD{class DVDGradiente: DVD{void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}

}}

Introdução a UMLIntrodução a UML

Page 29: Análise e Modelagem com UML

Exemplo de Interface em Java

14/12/14 http://www.alvarofpinheiro.eti.br 29

interfaceinterface DVD { DVD {void voltar();void voltar();void avancar();void avancar();void parar();void parar();void tocar();void tocar();

}}

class DVDSony implements DVD{class DVDSony implements DVD{void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}

}}

class DVDGradiente class DVDGradiente implements DVD{implements DVD{

void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}

}}

Introdução a UMLIntrodução a UML

Page 30: Análise e Modelagem com UML

O que são classes abstratas?Classes abstratas são úteis para representar a parte da semântica que é comum a mais de

uma classe. Evitando assim a duplicação de informações e facilitando o reuso e extensibilidade do sitema. Classe abstrata é aquela que não possui instância e, em geral, possui pelo menos um método abstrato (Métodos abstratos não têm corpo, isso obriga as subclasses a fornecer uma implementação para eles).

14/12/14 http://www.alvarofpinheiro.eti.br 30

Poligono

Quadrilatero

Triangulo

Pentagono

•Mover(x,y)•Area()•numeroLados()

São tipos de polígono

Introdução a UMLIntrodução a UML

Page 31: Análise e Modelagem com UML

Exemplo de classe abstrata em CSharp e Java

14/12/14 http://www.alvarofpinheiro.eti.br 31

abstract classabstract class Poligono { Poligono {void mover(int x,int y)void mover(int x,int y)

{...}{...}double area(){...}double area(){...}int numeroLados();int numeroLados();

}}classclass Quadrilatero: Poligono{ Quadrilatero: Poligono{

int numeroLados(){return 4;}int numeroLados(){return 4;}}} abstract classabstract class Poligono { Poligono {

void mover(int x,int y)void mover(int x,int y){...}{...}

double area(){...}double area(){...}int numeroLados();int numeroLados();

}}classclass Quadrilatero extends Poligono{ Quadrilatero extends Poligono{

int numeroLados(){return 4;}int numeroLados(){return 4;}}}

Introdução a UMLIntrodução a UML

Page 32: Análise e Modelagem com UML

Que tipos de classes existem?

14/12/14 http://www.alvarofpinheiro.eti.br 32

Classes

• Atributos• Métodos Classes Abstratas

• Atributos• Métodos• Assinatura de Métodos

Interfaces

• Assinaturas dos métodos

Introdução a UMLIntrodução a UML

Page 33: Análise e Modelagem com UML

Porquê então, classes abstratas e Interfaces?

Interfaces permitem a herança de tipo

Classes comuns e abstratas permitem a herança de código (comportamento e estrutura) e tipo

Classes descrevem propriedades fundamentais de um objeto

Interfaces descrevem papéis desempenhados por um objeto em determinadas situações

Interfaces são úteis para implementar herança múltipla

14/12/14 http://www.alvarofpinheiro.eti.br 33

Introdução a UMLIntrodução a UML

Page 34: Análise e Modelagem com UML

Para que serve um Pacote em UML?Um pacote é um mecanismo de propósito geral para organizar elementos em

grupos. Eles são conceitos úteis, pois:• Facilitam entendimento do sistema• Favorecem modularidade e reuso em larga escala• São essenciais para estruturar sistemas complexos

Os pacotes podem ser usados para organizar outros tipos de elementos de UML, tais como Casos de Uso, Componentes, etc.

14/12/14 http://www.alvarofpinheiro.eti.br 34

nome do pacote

Introdução a UMLIntrodução a UML

Page 35: Análise e Modelagem com UML

Qual o conceito de Coesão e Acoplamento?

Dois conceitos importantes de se entender na hora de se decidir que critério será usado para organizar as classes em pacotes são: Coesão e Acoplamento. Acoplamento é a medida de quão conectadas dois elementos são, ou seja, diz-se que um elemento está acoplada a um segundo se este tiver algum tipo de relacionamento ou dependência com o segunda. Coesão é a medida de quão auto contido um elemento é, ou seja, o quão independente de outros elementos ele é.

Para que um sistema seja bem projetado e, consequentemente, tenha uma boa manutenabilidade ele deve ter baixo acoplamento e alta coesão.

14/12/14 http://www.alvarofpinheiro.eti.br 35

Introdução a UMLIntrodução a UML

Page 36: Análise e Modelagem com UML

Quais são os tipos de relacionamentos no Diagrama de Classe?

AssociaçãoAgregação

Composição

Dependência

Generalização

Realização

14/12/14 http://www.alvarofpinheiro.eti.br 36

Introdução a UMLIntrodução a UML

Page 37: Análise e Modelagem com UML

O que é Associação?

14/12/14 http://www.alvarofpinheiro.eti.br 37

Professor

Professor Universidade

Universidade

Trabalha para

Associação

Nome da associação

Classe

Empregado Empregador

Papéis

Uma associação é um relacionamento estrutural que especifica que objetos de tipo são conectados a outro tipo. Em geral, as associações conectam duas classes e são chamadas associações binárias. Embora não seja muito comum é possível ter associações que conectam mais de duas classes. Estas são chamadas de associações n-nárias. Uma associação possui os seguintes elementos:

•Nome – Deve descrever a natureza da associação.•Pápeis – Quando uma classe participa de uma associação, ela tem um papel específico neste relacionamento.•Multiplicidade – Uma associação representa um relacionamento estrutural entre duas entidades. Na modelagem de sistemas é importante definir-se quantos objetos estarão conectados a uma instância de uma associação. •Navegabilidade – Define em que direção é possível navegar para recuperar a instância do outro objeto associado.

Introdução a UMLIntrodução a UML

Page 38: Análise e Modelagem com UML

O que é Multiplicidade?Multiplicidade define quantos objetos participam do relacionamento

O número de instâncias de uma classe relacionada a uma instância de outra classe

Especificado em cada uma das pontas da associação

Não especificada Nada (Somente a ligação entre as classes)

Exatamente um 1

Zero ou mais 0..*

Um ou mais 1..*

Zero ou um 0..1

Intervalo determinado 0..4

Valores múltiplos 2,4..6

14/12/14 http://www.alvarofpinheiro.eti.br 38

DisciplinaEstudante

Multiplicidade

1..*1

Introdução a UMLIntrodução a UML

Page 39: Análise e Modelagem com UML

O que é Navegação?

Especifica a direção da associação

Associações são bidirecionais por default

14/12/14 http://www.alvarofpinheiro.eti.br 39

DisciplinaEstudante

Navegação

1..*1

Introdução a UMLIntrodução a UML

Page 40: Análise e Modelagem com UML

O que é Agregação?Uma associação normal entre duas classes representa um relacionamento estrutural entre

pares, que significa que ambas classes estão conceitualmente no mesmo nível, nehuma delas é mais importante que a outra. Algumas vezes, é necessário modelar relacionamentos do tipo “todo-parte”, em que uma classe representa um grande conceito, que consiste de pequenas partes. Este tipo de relacionamento é chamado de agregação, que representa “tem-um”, que significa que um objeto “todo” tem objetos “parte”. Agregação é um tipo especial de associação, que possui a característica de “todo-parte”.

14/12/14 http://www.alvarofpinheiro.eti.br 40

DisciplinaEstudante

Todo ParteAgregação

Introdução a UMLIntrodução a UML

Page 41: Análise e Modelagem com UML

O que é uma Composição?Composição é uma variação de uma agregação, que adiciona uma semântica a mais. Na

composição o relacionamento “todo parte” possui uma maior força de posse e há uma coincidência entre o ciclo de vida do todo e da parte. As partes devem ser criadas após o todo, e uma vez criadas, elas vivem e morrem com o todo. As partes podem ser explicitamente removidas antes da morte do todo, mas elas não podem sobreviver após a morte do todo. Além disto, um objeto parte não pode ser compartilhado entre mais de um todo. Em uma composição o todo é responsável pela disposição das partes, o que significa dizer que ele deve gerenciar a criação e destruição das partes.

14/12/14 http://www.alvarofpinheiro.eti.br 41

PainelWindow

Todo ParteComposição

Introdução a UMLIntrodução a UML

Page 42: Análise e Modelagem com UML

O que é uma classe de associação?Em uma associação entre duas classes é possível ter propriedades. No exemplo do

relacionamento empregado/empregador entre as classes Empresa e Pessoa tem propriedades que se aplicam exatamente ao relacionamento, como descrição do emprego, salário, data de admissão, estas propriedades representam o conceito de Emprego.

14/12/14 http://www.alvarofpinheiro.eti.br 42

Introdução a UMLIntrodução a UML

Page 43: Análise e Modelagem com UML

O que são Associações Qualificadas?

Uma associação qualificada em UML é equivalente à conceitos de programação tais como arrays associativos, Maps e Dicionários. A figura acima

Mostra uma forma de representar a associação entre Pedido e Linha de Pedido através do uso de qualificador. No exemplo acima, o qualificador diz que em uma conexão com um pedido, pode haver uma linha de pedido para cada instância de produto. A multiplicidade 0..1, indica que há no máximo uma linha de pedido associada a um pedido, dado um produto como argumento.

14/12/14 http://www.alvarofpinheiro.eti.br 43

class Order { class Order { private Map _lineItems; private Map _lineItems; public OrderLine getLineItem (Product aProduct){}public OrderLine getLineItem (Product aProduct){} public void addLineItem (Number amount, Product forProduct){}public void addLineItem (Number amount, Product forProduct){}}}

Introdução a UMLIntrodução a UML

Page 44: Análise e Modelagem com UML

O que é uma Dependência?Uma dependência é um relacionamento de “uso” que tenta apontar que mudanças em uma

classes pode afetar outra classe que a usa, mas não necessariamente o inverso. Uma dependência entre classes pode ser geradas pelos seguintes tipos de uso:

• Parâmetros de entrada de métodos• Tipos de retorno de métodos• Utilização dentro do código de métodos• Exceções lançadas

14/12/14 http://www.alvarofpinheiro.eti.br 44

Introdução a UMLIntrodução a UML

Page 45: Análise e Modelagem com UML

Exemplo de Dependência em CSharp e Java

14/12/14 http://www.alvarofpinheiro.eti.br 45

classclass Log { Log { ...... void gravar(){void gravar(){

Arquivo aArquivo a =...; =...; a.escrever(...);a.escrever(...); }}}}

classclass Arquivo { Arquivo { ...... void salvar(void salvar(StreamStream dados){ dados){ ...... }}}}

OBS: Pode existir relacionamento de dependência entre vários elementos de UML

Classe

Pacote

PacoteFornecedor

FornecedorCliente

PacoteCliente

Introdução a UMLIntrodução a UML

Page 46: Análise e Modelagem com UML

O que é Generalização e Especialização?

É um relacionamento entre um elemento genérico (chamado superclasse ou pai) e um mais específico (chamado subclasse ou filho).

Generalização também é chamado de Herança ou relacionamento “é-um-tipo-de”. Um filho pode ser usado em qualquer lugar onde seja requerido o pai. Além disso, o filho herda os atributos, operações e relacionamentos do pai. O filho pode ter atributos ou operações a mais, ou pode até sobrescrever uma operação do pai.

14/12/14 http://www.alvarofpinheiro.eti.br 46

O objeto da classe filha “herda” todas as características da classe pai

Introdução a UMLIntrodução a UML

Page 47: Análise e Modelagem com UML

Então, o que Herança?

14/12/14 http://www.alvarofpinheiro.eti.br 47

Animal

LeãoHomem

Mamífero Ave

Class Animal{...

}

Class Mamifero extends Animal{...

}

Class Ave extends Animal{...

}

Class Homem extends Mamifero{...

}

Introdução a UMLIntrodução a UML

Page 48: Análise e Modelagem com UML

A Herança pode ser de que tipo?

Simples quando: uma classe herda de uma outra

14/12/14 http://www.alvarofpinheiro.eti.br 48

Círculoraiocentro

desenhar()

Retânguloverticesdesenhar()diagonal()

Figuracorlargura da linhadesenhar()selecionar()

Subclasses

Superclasse(pai)

Relacionamentode Generalização

Introdução a UMLIntrodução a UML

Page 49: Análise e Modelagem com UML

A Herança pode ser de que tipo?

Múltipla quando: classes herdando de mais de uma classe

14/12/14 http://www.alvarofpinheiro.eti.br 49

Mamífero AnimalVoadorHerançamúltipla

Cachorro Gato Morcego Passarinho Gaviao

Apesar de ser um mecanismos interessante, poucas linguagens de programação dão suporte a isso. Além disso, existem algumas dificuldades semânticas relacionadas ao assunto. As perguntas abaixo demonstram essa questão.•O que acontece quando as superclasses possuem o mesmo método (métodos com o mesmo nome)?

•O que acontece quando se tenta executar um método que não está definido na subclasse? Em que hierarquia de superclasses deve-se procurar o método?

Introdução a UMLIntrodução a UML

Page 50: Análise e Modelagem com UML

O que é uma Realização?Uma realização é um relacionamento semântico entre uma interface e uma classe (veremos mais adiante

que pode ser entre interfaces e outros elementos). Este relacionamento especifica um tipo de contrato que a entidade que realiza tem que seguir. Como visto anteriormente uma interface define um conjunto de operações que são usados para especificar os serviços implementados por uma ou mais classes. Neste caso é dito que estas classes realizam a interface, ou sejam, seguem o contrato estabelecido por ela.

14/12/14 http://www.alvarofpinheiro.eti.br 50

Indica que um elemento serve como contrato que o outro deve seguir

Relacionamento semântico entre uma interface e uma classe

Este relacionamento especifica um tipo de contrato que a entidade que realiza tem que seguir.

Similar à Generalização Viabiliza a herança de tipo, ou seja,

o relacionamento “é um tipo de”

Introdução a UMLIntrodução a UML

Page 51: Análise e Modelagem com UML

Como representar uma Realização?

14/12/14 http://www.alvarofpinheiro.eti.br 51

Realização

SubsistemaClasse

Caso de uso

Componente

Realização de Caso de uso

Pode ser usado em diferentes tipos de elementos

Introdução a UMLIntrodução a UML

Page 52: Análise e Modelagem com UML

O que é Visibilidade?Existem quatro tipos básicos de modificadores de acesso

Public – São visíveis para quaisquer classes invocar/acessar

Private – São visíveis apenas na própria classe

Protected – São visíveis apenas para subclasses ou classes do mesmo pacote

Friendly – São visíveis apenas para classes do mesmo pacote

São aplicáveis à (classe, método, atributo e relacionamentos)Dependendo escopo podem ter significado diferente

Mecanismo que facilita o encapsulamento

14/12/14 http://www.alvarofpinheiro.eti.br 52

Introdução a UMLIntrodução a UML

Page 53: Análise e Modelagem com UML

O que é uma restrição?

Restrições podem ser usadas em diferentes elementos de UML.

Usadas para criação de novas regras sobre elementos do modelo ou modificação de regras existentes

14/12/14 http://www.alvarofpinheiro.eti.br 53

Professor Departamento{subset}

Funcionário

Coordenador1..* 1

3 1

Introdução a UMLIntrodução a UML

Page 54: Análise e Modelagem com UML

Resumo de Diagrama de Classe

14/12/14 http://www.alvarofpinheiro.eti.br 54

Introdução a UMLIntrodução a UML

Page 55: Análise e Modelagem com UML

Algumas dicas úteis sobre Classe

É focado na comunicação de um aspecto da visão estática do projeto do sistema

Contém somente elementos que são essenciais para o entendimento do aspecto que se deseja mostrar.

Provê detalhes consistentes com o nível de detalhes apropriado para o bom entendimento do mesmo.

Também não é tão minimalista ao ponto de não prover informações suficientes para o leitor compreender a semântica do mesmo.

14/12/14 http://www.alvarofpinheiro.eti.br 55

Introdução a UMLIntrodução a UML

Page 56: Análise e Modelagem com UML

Mais dicas sobre Classes Quando estiver modelando lembre-se que um diagrama de classes é somente um representação gráfica

da visão estática do projeto do sistema. Um único diagrama de classes não será capaz de capturar tudo sobre o projeto do sistema. Cada diagrama de classes representará somente um aspecto do visão estática do sistema, o conjunto de diagramas é que será capaz de representar a visão estática completa.

Um diagrama de classes bem estruturado possui as seguintes características:• É focado na comunicação de um aspecto da visão estática do projeto do sistema.• Contém somente elementos que são essenciais para o entendimento do aspecto que se deseja

mostrar.• Provê detalhes consistentes com o nível de detalhes apropriado para o bom entendimento do

mesmo.• Também não é tão minimalista ao ponto de não prover informações suficientes para o leitor

compreender a semântica do mesmo.

Quando estiver modelando um diagrama:• Dê-lhe um nome que comunica o seu propósito• Organize os elementos de forma a evitar o sobreposição de linhas.• Mantenha os elementos semanticamente relacionados juntos;• Use Anotações (Notes) e cores para chamar a atenção sobre importante elementos do diagrama.• Não tente mostrar todos os tipos de relacionamentos entre as classes (Exemplo, se já há um

relacionamento do tipo Agregação, não é necessário colocar uma dependência).

14/12/14 http://www.alvarofpinheiro.eti.br 56

Introdução a UMLIntrodução a UML

Page 57: Análise e Modelagem com UML

O que são Diagramas de Objetos?

O diagrama de objetos é bastante similar ao de classes, no entanto os elementos que o compõe são objetos ao invés de classes. Na verdade o diagrama de objetos representa um snapshot (fotografia) do sistema em um determinado instante. O diagrama de objetos é como se fosse o perfil do sistema em um certo momento de sua execução.

Eles são úteis para mostrar o estado do sistema em um dado instante que seja importante e demonstrar o estado de ambientes complexos, tais como sistemas de tempo real ou sistemas de controle. Em geral não é muito usado para a modelagem de sistemas convencionais.

14/12/14 http://www.alvarofpinheiro.eti.br 57

Introdução a UMLIntrodução a UML

Page 58: Análise e Modelagem com UML

Qual a relação entre Classe e Objeto?

Classe é uma definição abstrata de um objetoEla define a estrutura e o comportamento dos objetos

Serve como template para criação de objetos

Objetos são agrupados em classes

14/12/14 http://www.alvarofpinheiro.eti.br 58

Curso

•Adicionar um aluno•Remover um aluno•Atribuir professor•Atribuir sala

•Nome•Localização•Duração•Créditos

•Nome = Análise I•Localização = MAC•Duração = 30h•Créditos = 2

•Nome = Análise II•Localização = MAC•Duração = 15h•Créditos = 4

•Nome = SI•Localização = MAC•Duração = 30h•Créditos = 2

Introdução a UMLIntrodução a UML

Page 59: Análise e Modelagem com UML

Como representar um objeto em UML?

14/12/14 http://www.alvarofpinheiro.eti.br 59

: Professor p :Professor

pApenas o nome da classe

Apenas o nome doobjeto

Nome da classe e do objeto

Múltiplos objetos

: Professor: Professor

p: Processo[esperando]

objeto com o estado explícito

: Professor

titulo = “Mestre”Nome = “Pascoal”

Objeto com valoresde atributos

Introdução a UMLIntrodução a UML

Page 60: Análise e Modelagem com UML

Exemplo de criação de objetos em CSharp e Java

14/12/14 http://www.alvarofpinheiro.eti.br 60

classclass Pessoa { Pessoa {......

}}

......Pessoa p1 = new Pessoa();Pessoa p1 = new Pessoa();Pessoa p2 = new Pessoa();Pessoa p2 = new Pessoa();

p1.nome = “Pascoal”;p1.nome = “Pascoal”;p2.nome = “Maria”;p2.nome = “Maria”;

Introdução a UMLIntrodução a UML

Page 61: Análise e Modelagem com UML

Diagrama de Classe vrs Diagrama de Objeto

14/12/14 http://www.alvarofpinheiro.eti.br 61

Introdução a UMLIntrodução a UML

Page 62: Análise e Modelagem com UML

O que é um Diagrama de Estrutura Composta?

14/12/14 http://www.alvarofpinheiro.eti.br 62

Permite desdobrar um classe em partes menoresVisualizar a estrutura interna de classes mais complexasÚtil para mostrar agrupamentos em tempo de execução Mostra em mais detalhes as dependências de uma classe

TV Viewer

controls[0..* ]

generators

controls[0..* ]

generators

display

TV Cont rol API

Parte

Conector

PortaDelegação

Interface requerida

Interface Ofericida

Introdução a UMLIntrodução a UML

Page 63: Análise e Modelagem com UML

O que é Diagrama de Componente?O diagrama de componente descreve os componentes de software e suas dependências, representando a estrutura dos elementos físicos do

sistema. Assim como os elementos lógicos de um sistema (como classes, por exemplo) existem no mundo conceitual, elementos físicos existem no mundo real dos bits (arquivos binários, executáveis e de textos, por exemplo). Em UML, todos estes elementos são modelados como componentes.

As interfaces de UML são a ligação entre os elementos físicos e os lógicos, pois os componentes (mundo físico) realizam um conjunto de interfaces (mundo conceitual) .

Componentes são partes não trivial, quase independente, substituível de um sistema, que provê a realização de (uma/um conjunto de) interface(s)

Exemplos:• um código fonte• Uma biblioteca• um componente executável• Tabela, arquivo ou documentos

14/12/14 http://www.alvarofpinheiro.eti.br 63

Em UML 1.4Em UML 2.0

Introdução a UMLIntrodução a UML

Page 64: Análise e Modelagem com UML

O que é Diagrama de Implantação?• Relacionado à visão lógica da arquitetura você pode usar diagramas como de classes, colaboração, pacotes, sequência, etc. Mas em

relação à visão física existem o seguintes diagramas: componentes, que mostram os elementos físicos, como arquivos, executáveis, tabelas e artefatos; Implantação, que mostra os nós físicos em termos de equipamentos.

• Mostra a relação física entre os componentes de software e hardware• Podem envolver somente as relações entre componentes de hardware ou entre hardware e software

• Útil para demonstrar a Visão Física da arquitetura

Nós – Algum tipo de unidade computacional, em geral elementos de hardware

Nós contém artefatos (arquivos, executáveis, etc.)

Generalizando, o Nó pode ser considerado qualquer

elemento que seja capaz de hospedar

software (ex. Sistema Operacional)

Conexões – Conexões entre os nós que representa um modo

de comunicação qualquer

(ou em termos físicos ou em termos de protocolo)

14/12/14 http://www.alvarofpinheiro.eti.br 64

Introdução a UMLIntrodução a UML

Page 65: Análise e Modelagem com UML

O que é Diagrama de Interação?Os diagramas de interação modelam interações entre os elementos do sistema e são usados para

modelar aspectos sobre a dinâmica do sistema. Em geral a interação é iniciada por um ator e envolve instâncias (objetos) das classes. Os diagramas de interação capturam a semântica do fluxo de eventos do caso de uso e, por isso, auxiliam a identificar classes, responsabilidades e relacionamentos.

A modelagem no diagrama de interação envolve modelar instâncias de classes e as mensagens que são disparadas entre eles, de forma a ilustrar o comportamento em um determinado cenário. Diagramas de interação podem especificar a dinâmica de um conjunto de objetos relacionados ou representar um fluxo particular do caso de uso.

Em UML 2.0 existem os seguintes tipos:Diagrama de Seqüência

Diagrama de Comunicação (Antigo diagrama de colaboração)

Diagrama de Tempo (Timing Diagram)

Diagrama Geral de Interações (Interaction Overview Diagram)

14/12/14 http://www.alvarofpinheiro.eti.br 65

Introdução a UMLIntrodução a UML

Page 66: Análise e Modelagem com UML

O que é um Diagrama de Seqüência?

Enfatiza na ordem temporal das mensagens, de forma que as interações iniciam-se à esquerda e vão acontecendo em direção à direita. Este diagrama contém basicamente três tipos de elementos

• Objetos• Ligações • Mensagens

A figura acima mostra o diagrama

de seqüência, colocando os objetos que

participam da interação no topo do

diagrama, ao longo do enixo X.

Os objetos que iniciam a interação

ficam do lado esquerdo e

gradativamente enviam mensagens

para os elementos à direita.

14/12/14 http://www.alvarofpinheiro.eti.br 66

Introdução a UMLIntrodução a UML

Page 67: Análise e Modelagem com UML

Qual a representação de um Diagrama de Seqüência?

14/12/14 http://www.alvarofpinheiro.eti.br 67

:Cliente :Fornecedor

Objeto cliente Objeto fornecedor

Foco de controle

Numeração hierárquica para as mensagens

Mensagem reflexiva

1.1: Realize outra responsabilidade

1: Realize responsabilidade

Mensagem

Introdução a UMLIntrodução a UML

Page 68: Análise e Modelagem com UML

Um exemplo de Diagrama de Seqüência

14/12/14 http://www.alvarofpinheiro.eti.br 68

Introdução a UMLIntrodução a UML

Page 69: Análise e Modelagem com UML

Quais os aspectos de um Diagrama de Seqüência?

14/12/14 http://www.alvarofpinheiro.eti.br 69

Além dos elementos básicos que podem ser usados no diagramas de seqüência, existem outras características mais avançadas que podem ser usadas nos diagramas de seqüência, são elas:

•Criação e Deleção (Controle do ciclo de vida) de objetos•Laços e condições•Mensagens assíncronas

Criação

Auto-destruição

Destruição Forçada

Introdução a UMLIntrodução a UML

Page 70: Análise e Modelagem com UML

Outros aspectos do Diagrama de Seqüência

Um problema recorrente do Diagramas de seqüência é que ele não é muito bom para demonstrar situações onde seja requerido laços ou processamento condicional. Semanticamente o diagrama de seqüência mostra o fluxo de interação entre os objetos em um determinado cenário. Situações que requeriam a escolha de mais de uma alternativa de caminho de execução deveriam ser modeladas como diferentes seqüências de execução (em geral, requerendo a criação de diferentes diagramas de seqüência). Uma outra alternativa era incrementar a semântica de tais diagramas através da inclusão de Notas de texto, indicando a necessidade de laços ou de uma escolha. Devido a essa deficiência algumas ferramentas de modelagem incluíam formas proprietárias de representar estes elementos.

UML 2.0 incluiu o conceito de

Frames de Interação, que

permitem a representação de

repetições e caminhos

alternativos.

14/12/14 http://www.alvarofpinheiro.eti.br 70

Introdução a UMLIntrodução a UML

Page 71: Análise e Modelagem com UML

Quais os operadores do Diagrama de Seqüência?

14/12/14 http://www.alvarofpinheiro.eti.br 71

Introdução a UMLIntrodução a UML

Page 72: Análise e Modelagem com UML

Um exemplo Este exemplo possui um frame de repetição (loop), que indica que vai repetir o bloco interno para cada line

item. O frame de escolha (alt), interno a ele, possui uma escolha, caso o value > $10000 ele executa o dispatch do objeto careful, se não, ele executa o dispatch no objeto regular. Por fim, tem um fragmento opcional, que só executa caso a condição de guarda seja satisfeita.

Segue abaixo um trecho de código equivalente`ao comportamento especificado no diagrama de seqüência.

procedure dispatch foreach (lineitem) if (product .value > $10K) careful .dispatch else regular .dispatch end if end for if (needsConfirmation) messenger .confirm end procedure

14/12/14 http://www.alvarofpinheiro.eti.br 72

Introdução a UMLIntrodução a UML

Page 73: Análise e Modelagem com UML

Quais são os tipos de Mensagens?No diagrama de seqüência é possível representar mensagens síncronas ou assíncronas.

• Mensagens Síncronas - A linha de execução do objeto que originou a mensagem depende da execução do objeto chamado

• Mensagens assíncronas - A linha de execução do objeto que originou a mensagem é independente da execução do objeto chamado

14/12/14 http://www.alvarofpinheiro.eti.br 73

Introdução a UMLIntrodução a UML

Page 74: Análise e Modelagem com UML

O que é um Diagrama de Comunicação?

É um tipo de diagrama de interação que dá ênfase às ligações entre os vários participantes da interação. Ao contrário do diagrama de seqüência, onde cada participante é disposto em uma linha de tempo e mostra a seqüência de mensagens na direção vertical, o diagrama de colaboração permite o posicionamento livre dos participantes, permite desenhar ligações para mostrar como os participantes se conectam, e usa numeração para mostrar a seqüência de mensagens. Com o diagrama de comunicação pode-se mostrar quão ligados são os participantes.

14/12/14 http://www.alvarofpinheiro.eti.br 74

Introdução a UMLIntrodução a UML

Page 75: Análise e Modelagem com UML

Qual a diferença entre Colaboração e Seqüência?

Os diagramas de colaboração e seqüência são semanticamente equivalentes e podem ser automaticamente gerados, um a partir do outro. Cada um deles tem vantagens e desvantagens, dependendo de como se queira usá-los.

Colaboração• Melhores para visualizar os relacionamentos e responsabilidades de

um dado objeto• Mais fáceis de desenhar - úteis em sessões de brainstorm

Seqüência• Melhores para visualizar a seqüência do fluxo no tempo• Melhores para visualizar o fluxo completo• Mais adequados para cenários complexos

14/12/14 http://www.alvarofpinheiro.eti.br 75

Introdução a UMLIntrodução a UML

Page 76: Análise e Modelagem com UML

O que é um Diagrama Geral de Interação?

Este é um novo diagrama de UML 2.0 que combina elementos de diagrama de atividades com outros diagramas de interação. Ele embute nos fluxos de atividades, as interações entre objetos (diagramas de interação). Desta forma, ele permite reusar e combinar interações pré-definidas. Neste diagrama é possível, compor e reusar diferentes diagramas de interação e dar uma visão única para uma lógica de processamento mais complexa.

Apesar de interessante, a sua

aplicabilidade ainda não é

muito clara, poucos livros a

citam e quando citam, são

muito superficiais.

14/12/14 http://www.alvarofpinheiro.eti.br 76

Introdução a UMLIntrodução a UML

Page 77: Análise e Modelagem com UML

Para que serve o Diagrama de Tempo?

É focado em restrições tempo para um ou mais objetosRelaciona os objetos, seus estados e o tempo

São bem aplicáveis para

sistemas embarcados

(e comumente usado por

engenheiros de hardware)

14/12/14 http://www.alvarofpinheiro.eti.br 77

Introdução a UMLIntrodução a UML

Page 78: Análise e Modelagem com UML

Outros Diagramas

Diagrama de Atividades

Diagrama de Estados

14/12/14 http://www.alvarofpinheiro.eti.br 78

Introdução a UMLIntrodução a UML

Page 79: Análise e Modelagem com UML

Para que Atores e Casos de Uso?

14/12/14 http://www.alvarofpinheiro.eti.br 79

Introdução a UMLIntrodução a UML

Page 80: Análise e Modelagem com UML

Descrever Como Atores e Casos

de Uso Interagem

Avaliar os resultados

Apresentar o Modelo de Casos

de Uso em Diagramas de Casos de Uso

Empacotar Casos de Uso e

Atores

Identificar Casos de Uso

Localizar Atores

Quais as atividades para localizar?

14/12/14 http://www.alvarofpinheiro.eti.br 80

Introdução a UMLIntrodução a UML

Page 81: Análise e Modelagem com UML

Localizar atores

Stakeholders definidos no doc

de visão

14/12/14 http://www.alvarofpinheiro.eti.br 81

Introdução a UMLIntrodução a UML

Page 82: Análise e Modelagem com UML

Qualquer desses é um ator candidato

Uma instância de ator é alguém ou algo externo ao sistema que interage com ele

Uma classe de ator define um conjunto de instâncias de ator, no qual cada uma desempenha o mesmo papel em relação ao sistema Exemplo: gerentes de vendas acessando

um mesmo relatório gerencial

14/12/14 http://www.alvarofpinheiro.eti.br 82

Page 83: Análise e Modelagem com UML

Descrever Como Atores e Casos

de Uso Interagem

Avaliar os resultados

Apresentar o Modelo de Casos

de Uso em Diagramas de Casos de Uso

Empacotar Casos de Uso e

Atores

Identificar Casos de Uso

Localizar Atores

Quais as atividades para localizar?

14/12/14 http://www.alvarofpinheiro.eti.br 83

Introdução a UMLIntrodução a UML

Page 84: Análise e Modelagem com UML

Um caso de uso é uma seqüência de ações realizada por um sistema que produz um resultado de valor observável para determinado ator

Todos os casos de uso juntos devem descrever a funcionalidade completa do sistema (requisitos)

Atores são fundamentais para a descoberta dos casos de uso

14/12/14 http://www.alvarofpinheiro.eti.br 84

Introdução a UMLIntrodução a UML

Page 85: Análise e Modelagem com UML

Para cada ator....

Identificar Casos de Uso

14/12/14 http://www.alvarofpinheiro.eti.br 85

Introdução a UMLIntrodução a UML

Page 86: Análise e Modelagem com UML

Descrever Como Atores e Casos de Uso Interagem

Avaliar os resultados

Apresentar o Modelo de Casos

de Uso em Diagramas de Casos de Uso

Empacotar Casos de Uso e

Atores

Identificar Casos de Uso

Localizar Atores

Quais as atividades para localizar?

14/12/14 http://www.alvarofpinheiro.eti.br 86

Introdução a UMLIntrodução a UML

Page 87: Análise e Modelagem com UML

É o primeiro passo de modelagem dos caso de uso Diagrama de casos de uso

Uma associação de comunicação é uma associação entre uma classe de ator e uma classe de caso de uso, que indica haver interação entre suas instâncias

Um ator se comunica com os casos de uso por vários motivos, por exemplo: Para iniciar um caso de uso Para solicitar dados do sistema Para alterar os dados armazenados no sistema

14/12/14 http://www.alvarofpinheiro.eti.br 87

Introdução a UMLIntrodução a UML

Page 88: Análise e Modelagem com UML

14/12/14 http://www.alvarofpinheiro.eti.br 88

Coordenador

Introdução a UMLIntrodução a UML

Page 89: Análise e Modelagem com UML

Descrever Como Atores e Casos

de Uso Interagem

Avaliar os resultados

Apresentar o Modelo de Casos

de Uso em Diagramas de Casos de Uso

Empacotar Casos de Uso e

Atores

Identificar Casos de Uso

Localizar Atores

Quais as atividades para localizar?

14/12/14 http://www.alvarofpinheiro.eti.br 89

Introdução a UMLIntrodução a UML

Page 90: Análise e Modelagem com UML

Organizar casos de uso e atores em pacotes

Um pacote de casos de uso é um conjunto de casos de uso, atores e relacionamentos. É usado para organizar o modelo de casos de uso dividindo-o em partes menores.

Facilita o entendimento

14/12/14 http://www.alvarofpinheiro.eti.br 90

Introdução a UMLIntrodução a UML

Page 91: Análise e Modelagem com UML

Descrever Como Atores e Casos

de Uso Interagem

Avaliar os resultados

Apresentar o Modelo de

Casos de Uso em Diagramas

de Casos de Uso

Empacotar Casos de Uso e

Atores

Identificar Casos de Uso

Localizar Atores

Quais as atividades para localizar?

14/12/14 http://www.alvarofpinheiro.eti.br 91

Introdução a UMLIntrodução a UML

Page 92: Análise e Modelagem com UML

Apresentar o Modelo de Casos

de Uso em Diagramas de Casos de Uso

14/12/14 http://www.alvarofpinheiro.eti.br 92

Introdução a UMLIntrodução a UML

Page 93: Análise e Modelagem com UML

14/12/14 http://www.alvarofpinheiro.eti.br 93

Introdução a UMLIntrodução a UML

Page 94: Análise e Modelagem com UML

Descrever Como Atores e Casos

de Uso Interagem

Avaliar os resultados

Apresentar o Modelo de Casos

de Uso em Diagramas de Casos de Uso

Empacotar Casos de Uso e

Atores

Identificar Casos de Uso

Localizar Atores

Quais as atividades para localizar?

14/12/14 http://www.alvarofpinheiro.eti.br 94

Introdução a UMLIntrodução a UML

Page 95: Análise e Modelagem com UML

Avaliar resultados

14/12/14 http://www.alvarofpinheiro.eti.br 95

Introdução a UMLIntrodução a UML

Page 96: Análise e Modelagem com UML

Avaliar os resultados

Estabelecer Relacionamentos

de Inclusão

Estabelecer Relacionamentos

de Extensão

Estabelecer Relacionamentos de Generalização entre Casos de

Uso

Estabelecer Relacionamentos de Generalização

entre Atores

Quais as atividades para estruturar?

14/12/14 http://www.alvarofpinheiro.eti.br 96

Introdução a UMLIntrodução a UML

Page 97: Análise e Modelagem com UML

Um relacionamento de inclusão é aquele que Se estabelece entre um caso de uso base e um

caso de uso de inclusão

Especifica como o comportamento definido para o caso de uso de inclusão é inserido de forma explícita no comportamento definido para o caso de uso base

Além do reuso, relacionamentos de inclusão são criados para fatorar (separar comportamento complexo do caso de uso ou comportamento que não faz parte do propósito principal do caso de uso a fim de diminuir a complexidade do fluxo de eventos)

14/12/14 http://www.alvarofpinheiro.eti.br 97

Introdução a UMLIntrodução a UML

Page 98: Análise e Modelagem com UML

14/12/14 http://www.alvarofpinheiro.eti.br 98

Introdução a UMLIntrodução a UML

Page 99: Análise e Modelagem com UML

Avaliar os resultados

Estabelecer Relacionamentos

de Inclusão

Estabelecer Relacionamentos

de Extensão

Estabelecer Relacionamentos de Generalização entre Casos de

Uso

Estabelecer Relacionamentos de Generalização

entre Atores

Quais as atividades para estruturar?

14/12/14 http://www.alvarofpinheiro.eti.br 99

Introdução a UMLIntrodução a UML

Page 100: Análise e Modelagem com UML

Um relacionamento de extensão Se estabelece entre um caso de uso de

extensão e um caso de uso base Especifica como o comportamento definido

para o caso de uso de extensão pode ser inserido no comportamento definido para o caso de uso de base

Criados para modelar comportamentos opcionais ou excepcionais São executados somente face a certas condições Casos de uso de inclusão são sempre executados

14/12/14 http://www.alvarofpinheiro.eti.br 100

Introdução a UMLIntrodução a UML

Page 101: Análise e Modelagem com UML

14/12/14 http://www.alvarofpinheiro.eti.br 101

Introdução a UMLIntrodução a UML

Page 102: Análise e Modelagem com UML

Avaliar os resultados

Estabelecer Relacionamentos

de Inclusão

Estabelecer Relacionamentos

de Extensão

Estabelecer Relacionamentos de Generalização entre Casos de

Uso

Estabelecer Relacionamentos de Generalização

entre Atores

Quais as atividades para estruturar?

14/12/14 http://www.alvarofpinheiro.eti.br 102

Introdução a UMLIntrodução a UML

Page 103: Análise e Modelagem com UML

Uma generalização de casos de uso É um relacionamento de um caso de uso filho com

um caso de uso pai Especifica como um filho pode adotar todo o

comportamento e as características descritas para o pai

Usado para relacionar um caso de uso mais especializado com um mais geral

Este relacionamento complica mais do que facilita e deve ser evitado

14/12/14 http://www.alvarofpinheiro.eti.br 103

Introdução a UMLIntrodução a UML

Page 104: Análise e Modelagem com UML

14/12/14 http://www.alvarofpinheiro.eti.br 104

Introdução a UMLIntrodução a UML

Page 105: Análise e Modelagem com UML

Avaliar os resultados

Estabelecer Relacionamentos

de Inclusão

Estabelecer Relacionamentos

de Extensão

Estabelecer Relacionamentos de Generalização entre Casos de

Uso

Estabelecer Relacionamentos de Generalização

entre Atores

Quais as atividades para estruturar?

14/12/14 http://www.alvarofpinheiro.eti.br 105

Introdução a UMLIntrodução a UML

Page 106: Análise e Modelagem com UML

Na generalização de ator o filho herda o papel que o pai pode desempenhar em um caso de uso.

Facilita a leitura do modelo de caso de uso

14/12/14 http://www.alvarofpinheiro.eti.br 106

Introdução a UMLIntrodução a UML

Page 107: Análise e Modelagem com UML

Avaliar os resultados

Estabelecer Relacionamentos

de Inclusão

Estabelecer Relacionamentos

de Extensão

Estabelecer Relacionamentos de Generalização entre Casos de

Uso

Estabelecer Relacionamentos de Generalização

entre Atores

Quais as atividades para estruturar?

14/12/14 http://www.alvarofpinheiro.eti.br 107

Introdução a UMLIntrodução a UML

Page 108: Análise e Modelagem com UML

Avaliar resultados

14/12/14 http://www.alvarofpinheiro.eti.br 108

Introdução a UMLIntrodução a UML

Page 109: Análise e Modelagem com UML

Mecanismos Auxiliares da UML

UML é uma linguagem muito extensível e desta forma ela pode ser usada para modelar basicamente tudo que se deseja. Os principais elementos que a permitem ser flexível são:• Estereótipos• Notas• Propriedades (Tagged values)• Restrições

Estes elementos serão descritos com mais detalhes mais adiante.

14/12/14 http://www.alvarofpinheiro.eti.br 109

Introdução a UMLIntrodução a UML

Page 110: Análise e Modelagem com UML

O que é um EstereótipoEstereótipo é um mecanismo utilizado para estender o vocabulário de UML e pode ser aplicado a

qualquer elemento, sejam classes, relacionamentos, mensagens, atributo, etc. O estereotipo permite mudar a semântica do elemento ao qual ele é aplicado. Ele é representado colocando-se uma marcação no formato <<marcação>>, em cima do elemento. Em UML, já existem um conjunto de estereótipos pré-definidos que são aplicáveis a determinados elementos de UML, inclusive alguns deles já possuem ícones associados a eles, de forma que visualmente eles são diferentes do elemento sem o estereótipo, como é o caso de <<interface>> e <<actor>>, que são aplicáveis ao elemento Classe e mudam visualmente e semanticamente o seu significado.

14/12/14 110por Álvaro F Pinheiro14/12/14 110http://www.alvarofpinheiro.eti.br

Introdução a UMLIntrodução a UML

Page 111: Análise e Modelagem com UML

Para que server uma nota?

Mecanismo que permite a adição de comentários e associação do mesmo a qualquer elemento de UML.

14/12/14 http://www.alvarofpinheiro.eti.br 111

LeitoraCartao

Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.

Introdução a UMLIntrodução a UML

Page 112: Análise e Modelagem com UML

O que é uma Propriedades (Tagged Values)?

Um tagged value é uma extensão de propriedades dos elementos de UML, permitindo que sejam criadas novas informações na especificação do elemento. Cada elemento em UML possui o conjunto de propriedades possíveis dele. Por exemplo, as classes possuem visibilidade, atributos e métodos. Para possibilitar a inclusão de uma nova propriedade á um elemento é possível fazer uso dos taggeds values que permitem definir propriedades que serão atribuídas àqueles elementos onde ela se aplica.

14/12/14 http://www.alvarofpinheiro.eti.br 112

Cliente{persistence}

LeitoraCartao {location=server}

Introdução a UMLIntrodução a UML