Você está na página 1de 25

UNIVERSIDADE FEDERAL DE GOIAS

CURSO DE VERO

Introduo UML

PROJETO DE SOFTWARE
UML (Unified Modelling Language)
uma linguagem para especificao, construo, visualizao e documentao de sistemas uma evoluo das linguagens para especificao dos conceitos de Booch, OMT e OOSE e tambm de outros mtodos de especificao de requisitos de software orientados a objetos ou no

U.M.L
Prof Edmundo JAN/2010 Aula 3

Histrico da UML
Incio em Outubro de 1994, Booch e Jim Rumbaugh comearam um esforo para unificar o mtodo de Booch e OMT (Object Modeling Language) Uma primeira verso, chamada Unified Method, foi divulgada em outubro de 1995 Jacobson juntou-se ao grupo, agregando o mtodo OOSE (Object-Oriented Software Engineering) O esforo dos trs resultou na liberao da UML verso 0.9 e 0.91 em junho e outubro de 1996

Histrico da UML (cont.)


Em janeiro de 1997, foi liberada a verso 1.0 da UML Adotada como padro segundo a OMG (Object Management Group, http://www.omg.org/) em Novembro de 1997 Atualmente: verso 2.0 nvel maior de semntica

Histrico da UML (cont.)


FUSION (Coleman)
Grafo de interao de objetos (Diagrama de colaborao)

Ferramentas de Apoio
Diversas empresas lanaram ferramentas para auxiliar a modelagem e projeto de sistemas utilizando UML, gerar cdigo a partir da modelagem e projeto e realizar engenharia reversa, ou seja, obter o modelo em UML a partir do cdigo. Exemplos:
A famlia Rational Rose Interprise (da Rational Software Corporation http://www-306.ibm.com/software/rational/) que gera cdigo para SMALLTALK, PowerBuilder, C++, J++, Visual Basic. http://www.omg.org/technology/uml/index.htm#Links-Tools (lista de ferramentas que envolvem a UML) MVCase: Desenvolvida por pesquisadores da UFSCAR. Disponvel em http://www.recope.dc.ufscar.br/mvcase/
5 6

STATECHARTS (Harel)
Diagrama de statecharts (Diagrama de estados)

BOOCH
Diagrama de estados Diagrama de classes Diagrama de objetos (Diagrama de colaborao) Diagrama de processos (Diagrama de implantao) Diagrama de mdulos (Diagrama de componentes)

UML

OMT (Rumbaugh)
Diagrama de classes Diagrama de estados (Diagrama de atividades)

OOSE (Jacobson)

Diagrama de casos de uso Pacotes

Fonte: Material didtico do Prof. Antonio Francisco do Prado (UFSCar)

Diagramas da UML

UML aborda
Comportamento interno do software: Modela a resposta aos estmulos externos e a comunicao entre as partes internas
Diagramas de Estados Diagramas de Seqncia Diagramas de de Colaborao Diagramas de Atividade

Diagramas de Casos de Uso Diagramas de Classe Diagramas de Comportamento Diagrama de Estado Diagrama de Atividade Diagrama de Seqncia Diagrama de Colaborao Diagramas de Implementao Diagrama de Componente Diagrama de Implantao (Deployment)
7

Comportamento externo do software: Descrio de cenrios de interao entre elementos externos e o sistema
Diagramas de Casos de Usos
8

UML aborda
Arquitetura de implementao: Descrio dos componentes de software que formam o sistema e a arquitetura de hardware
Diagramas de Componentes Diagramas de Implantao

Diagramas Existentes na Rational Rose


Diagrama de Caso de Uso Descrio do Caso de Uso

Viso de Casos de Uso

Diagrama de Seqncia Diagrama de Colaborao Diagrama de Classes

Estrutura de suporte: Estrutura das partes que formam o sistema e suas relaes internas
Diagramas de Classes Diagramas de Pacotes
9

Viso Lgica Viso de Componentes Viso de Implantao

Diagrama de Estados Diagrama de Atividades Diagrama de Componentes Diagrama de Implantao


10

UML - Diagrama de Casos de Uso


Importantes para modelagem dos comportamentos de um sistema sob o ponto de vista dos usurios Documentam os requisitos dos sistemas
Delimitam o sistema Definem a funcionalidade do sistema

UML - Diagrama de Casos de Uso


Caso de Uso
especificao da seqncia de aes que um sistema ou subsistema pode realizar, interagindo com um dos atores

Atores
entidades do sistema, pessoas ou outros subsistemas que interagem com o sistema em desenvolvimento

Associao entre ator e caso de uso


indica que h uma comunicao, possivelmente com envio e recepo de mensagens
11 12

UML - Diagrama de Casos de Uso

UML - Diagrama de Casos de Uso


Podem incluir seqncias excepcionais (de erros) alternativas ou

A coleo de casos de uso dever especificar todas as formas existentes de uso do sistema

13

14

UML - Diagrama de Casos de Uso Ator


Atores so os usurios do sistema Quando um sistema um ator de outro sistema, rotule o sistema ator com o esteretipo <<actor>>

Identificao de atores
Atores so externos ao sistema Para a identificao de todos os atores de um sistema poder ser necessrio vrias iteraes. Diretrizes:
Pergunte a voc prprio por que o sistema est sendo desenvolvido? Quem sero as pessoas que o sistema ajudar? Quais sero os outros sistemas que precisaro interagir com o novo sistema?

Cliente

15

16

UML - Diagrama de Casos de Uso Ator


possvel definir tipos gerais de atores e especializ-los usando o relacionamento de especializao

UML - Diagrama de Casos de Uso Caso de Uso


Mostra apenas O QUE o sistema faz e NO como Captura o comportamento pretendido para um sistema, sem especificar como esse comportamento ser implementado
Diagramas de interao (veremos mais adiante) podem ser usados para especificar COMO um caso de uso ser implementado (ou realizado)

Cl ient e

Cli enteE special

17

18

UML - Diagrama de Casos de Uso Caso de Uso


Representao de casos de uso
Os rtulos so verbos funcionalidade do sistema que

UML - Diagrama de Casos de Uso Relacionamentos


Associao Generalizao Incluso Extenso

oval
representam a

CadastrarCliente

19

20

UML - Diagrama de Casos de Uso Relacionamentos


Relacionamento de Associao
ilustrado o relacionamento entre um ator e um caso de uso com uma linha
dadosCliente

UML - Diagrama de Casos de Uso Relacionamentos


Relacionamento de Generalizao
Relaciona um caso de uso especializado a um mais geral O filho herda os atributos, operaes e seqncias de comportamento dos pais O filho pode adicionar e redefinir o comportamento do pai O filho pode substituir o pai em qualquer lugar que ele aparece

msg01 Cliente

cadastrarCliente

21

22

UML - Diagrama de Casos de Uso Relacionamentos


Relacionamento de Generalizao
possvel abstrair a partir de comportamentos dos casos de uso Ambos casos de uso Verificar senha e Scan de retina validam o usurio
Identifica-se um caso de uso abstrato Validar usurio para realizar esta validao

UML - Diagrama de Casos de Uso Relacionamentos


Validar usurio

Verificar senha
23

Scan da retina
24

UML - Diagrama de Casos de Uso Relacionamentos


Relacionamento de Incluso <<includes>> (esteretipo)
O caso de uso base incorpora explicitamente o comportamento de outro caso de uso no local especificado na base O caso de uso includo nunca estar sozinho, somente ser instanciado de um caso de uso base que o incluir

UML - Diagrama de Casos de Uso Relacionamentos


Relacionamento de Incluso <<includes>>
O mesmo caso de uso de incluso pode ser inserido em mltiplos casos de uso base A incluso representa comportamento encapsulado que potencialmente poder ser reusado em outros casos de uso base
Usado para evitar a descrio do mesmo fluxo de eventos vrias vezes

25

26

UML - Diagrama de Casos de Uso Relacionamentos


Exemplo de Relacionamento de Incluso
dadosPedido

UML - Diagrama de Casos de Uso Relacionamentos


Relacionamento de Extenso <<extends>> (esteretipo)
A extenso de um caso de uso base por um caso de uso de extenso especifica como o comportamento definido pelo caso de uso de extenso pode ser inserido no comportamento do caso de uso base

Cliente msg02

EfetuarPedido <<includes>>

ValidarCliente

27

28

UML - Diagrama de Casos de Uso Relacionamentos


Exemplo de Relacionamento de Extenso
Quando um Cliente efetuar um pedido e no estiver cadastrado necessrio cadastr-lo
dadosPedido

UML - Diagrama de Casos de Uso Relacionamentos


Relacionamento de extenso
Usado para modelar extenso de outros casos de uso completos:
para modelar partes opcionais de casos de uso para modelar cursos alternativos que so executados somente em certos casos

RealizarPedido Cliente msg02 <<extends>>

CadastrarCliente
29 30

UML - Diagrama de Casos de Uso Relacionamentos


Outro exemplo Extenso de Relacionamento de
Quando um item ficar preso, o sistema ATM dever emitir um alarme isto pode ser descrito como um caso de uso que estende o caso de uso Retornar item

UML - Diagrama de Casos de Uso Relacionamentos


Outro exemplo Extenso de Relacionamento de

Retornar item

<<extends>>

Item preso

31

32

Documentao de Casos de Uso


criado para cada caso de uso
escrito do ponto de vista de um ator no contm detalhes de implementao (interfaces GUI, acesso a banco de dados, etc)

Descrio do Caso de Uso


Caso de Uso: Cadastrar Cliente Ator: Cliente Descrio: Este caso de uso responsvel por cadastrar os clientes da empresa. Curso Normal:
1 - Cliente informa que deseja fazer seu cadastro 2 Sistema solicita CPF do cliente 3 - Cliente informa o CPF vlido 4 - No existe o cliente associado ao CPF 5 - Cliente informa seu Nome, Endereo e Telefone 6- Uma instncia de cliente criada 7. Sistema informa MSG01 Cliente Cadastrado
33 34

Detalha o que o sistema deve fornecer para o ator quando o caso de uso for executado Contedos tpicos
Como o use case comea e termina Fluxo normal de eventos Fluxo alternativo de eventos Fluxo excepcional de eventos (respostas a erros)

Descrio do Caso de Uso


Curso Alternativo - 1: 3 Cliente informa CPF invlido 3.1 Sistema informa MSG CPF invlido 3.2 Abandonar caso de uso Curso Alternativo - 2: 4 - Existe o cliente associado ao CPF 4.1 Sistema exibe os dados do cliente 4.2 Sistema informa MSG01 Cliente j est cadastrado 4.3 - Abandonar Caso de Uso

Exemplos de Diagrama de Casos de Uso


Nr. Caso de Uso 1 Nome Cadastrar Cliente Descrio Caso de uso responsvel pelo cadastro de todos os clientes da locadora ... ... ...

2 3 4 5 6
35

Locar Fitas Validar Cliente Pagar com Cheque

Pagar com Dinheiro ... Pagar com Carto ...


36

Exemplo de Diagrama de Casos de Uso

Exemplo de Diagrama de Casos de Uso


<<includes>> << use s >>
Atender Paciente

<<extends>>

Cliente <<extends>>

Locar Fitas

Cadastrar Client e <<includes>> <<extends>>

<<uses>> <<includes>> Verificar Dados do Paciente Enferme ira


(f rom Actors)

<<extends>>

Marcar Consultas

Validar Cliente Pagar com Cheque Pagar com Dinheiro Pagar com Carto
Paciente Efetuar Pagamento

37

38

Exemplo de Diagrama de Casos de Uso


Sesso de ATM Verificar identidade caso de uso base

Exemplo de Descrio de Casos de Uso


Caso de Uso: Sesso de ATM mostrar anncio do dia incluir Identificar Cliente incluir Validar Conta imprimir cabealho do recibo finalizar Caso de Uso Caso de Uso de Incluso: Identificar Cliente obter o nome do cliente incluir Verificar Identidade Se falha de verificao ento aborta a sesso obtenha nmero da conta do cliente

<<includes>>

<<includes>>

<<includes>>

Identificar Cliente

Validar Conta

caso de uso includo

Caso de Uso de Incluso: Validar Conta obtenha informaes sobre a conta obtenha status e limite da conta
39 40

UML - Diagrama de Classes


Classe uma descrio de um conjunto de objetos com os mesmos atributos, relacionamentos, operaes e semntica Classes = abstraes do domnio do problema: Cliente, Banco, Conta
Atributos

Classe Notao
Nome

Forma

origem

Mtodos

mover() redimensionar() exibir()


41 42

Classe Visibilidade
Pode-se usar marcaes de acesso para especificar o tipo de acesso permitido aos atributos e mtodos
pblico: uso por todas as classes protegido: uso por qualquer descendente da classe privado: uso: somente pela prpria classe
t e s te x 1 : int n o m e : s t rin g c o d ig o : c h a r

UML - Diagrama de Classes


Classes
Produto Cdigo : integer Saldo : float Preo : float Observao : String Cadastrar (cod : integer = default, saldo : float = default) : Produto ValidarQuantidade (quant : float = default) : boolean CalcularDesconto (vr : float = default) : valor ImprimirDetalhe (cod : integer = default, quant : float BaixarEstoque (cod : integer = default, quant : float = default)
Atributos Nome: Tipo = ValorInicial Mtodos Nome (ListaParam): TipoRetorno
44

Pblico Privado Protegido

Notao da Ferramenta Rational Rose


43

UML - Diagrama de Classes


Relacionamentos
As classes no existem sozinhas Os relacionamentos ligam as classes/objetos entre si criando relaes lgicas entre eles

UML - Diagrama de Classes


Relacionamento de Associao

- especifica que objetos de um elemento esto conectados a


objetos de outros elementos
Fornecedor

1..n

Produto

Tipos de relacionamentos
Associaes Agregaes Dependncias Generalizaes
45

Multiplicidade
indica quantos objetos uma classe pode possuir e por quantos objetos uma classe possuda 0..1 (opcional- 0 ou mais) 1 (exatamente 1) 0..* (muitos- 0 ou mais) 1..* (1 ou mais) 1..n ( de 1 a n)
46

UML - Diagrama de Classes


Navegabilidade de Classes
Mostra, explicitamente, de quem a responsabilidade de obter as informaes Dupla navegabilidade: desempenho inaceitvel grande volume de colees que aparecem no software

UML - Diagrama de Classes


Exemplo de Navegabilidade de Classes
Fornecedor

1..n

Produto

novo atributo classe Fornecedor:


public Vector produto = new Vector();

47

48

UML - Diagrama de Classes


Relacionamento de Associao com Papis
Utilizado em um dos lados da associao Nomes de papis so necessrios principalmente para associao entre dois objetos de mesma classe

UML - Diagrama de Classes


Relacionamento de Associao com Atributos
Modela as propriedades relacionadas a uma associao.
as propriedades devem ser representadas por uma classe
Carro Cliente CliCPF : String CliNome : String CliEndereco : String CliTelefone : String CliDivida : Float Aluga 0..* solicita Alugado por 0..* CarPlaca : String CarDescricao : String CarSituacao : Integer = 0 CarAno : Integer CarKm : Float CarPrecoKm : Float CarTaxa : Float CarBmp : TImage CarObservacao : TMemo

Companhia

1
possui

1 .. *
trabalha

Empregado
chefia 1

subordinado 0 .. *
Aluguel AluDataInicio : Date = GetDate

49

50

UML - Diagrama de Classes


Relacionamento de Agregao/Composio
Tipo especial de associao ( parte de) Agregao/Composio
Apartamento

UML - Diagrama de Classes


Relacionamento Especializao

de

Herana/Generalizao

Funcionarios

relacionamento entre um elemento mais geral (superclasse ou pai) e um mais especfico (subclasse ou filho)
Pessoa

Composio: Composio: As partes s podem pertencer ao todo e so criadas e destrudas com ele
Garagem

Dependentes

Pessoa Fsica

Pessoa Jurdica

51

52

UML - Diagrama de Classes


Relacionamento de Dependncia
relacionamento de uso, no qual uma mudana na especificao de um elemento pode alterar a especificao do elemento dependente

UML - Diagrama de Classes Exemplo


Pessoa 1 Emprestimo numero: int 0..* data : date solicita devolver: date devolvido: date Professor Livro titulacao : String 0..* 1..* Exemplar situacao : String localizacao: int Estudante numeroMatricula : String anoIngresso : int nome : String endereco : String RG : String

Cursos

AgendaCursos remove(c:Cursos) add(c:Cursos)

edicao : String ano : int titulo : String autor : String editora : String 1 pertence 1..* 53

54

Interaes
Mostram os aspectos dinmicos de um sistema, enfatizando a troca de mensagens entre objetos

Diagramas de Interao
- Diagrama de Seqncia
- Diagrama de Colaborao

So usadas para modelar o fluxo de controle


para uma operao, classe, subsistema ou sistema inteiro componente,

Dois diagramas podem ser usados para modelar as interaes: diagramas de sequncia e diagramas de colaborao
55 56

Utilidades
Modelar as interaes em um sistema uma das tcnicas mais poderosas para a descoberta das classes e das operaes do sistema Diagramas de interao
facilitam o entendimento de sistemas com comportamento complexo teis para sistemas OO porque a funcionalidade nesses sistemas geralmente distribuda em muitas classes diferentes

UML Diagramas de Interao


Os diagramas de interao costumam conter: Objetos Vnculos (relacionamentos) Mensagens

57

58

UML - Diagramas de Interao


Diagrama de seqncia e Diagrama de colaborao
utilizados na UML para a modelagem dos aspectos dinmicos do sistema

UML - Diagramas de Interao


Diagrama de seqncia
d nfase a ordenao temporal de mensagens

Diagrama de colaborao
d nfase na organizao estrutural dos objetos que enviam e recebem mensagens

59

60

10

UML - Diagramas de Interao (Diagrama de Seqncia)


Descrevem comportamento interno Mostram os eventos entre objetos Descrevem uma interao no tempo Ideal para especificaes de tempo real No mostram a associao entre objetos Possibilitam o refinamento do diagrama de classes
61

UML - Diagramas de Interao (Diagrama de Seqncia)


Caractersticas que o diferencia do diagrama de colaborao:
linha de vida do objeto
linha tracejada vertical que representa a existncia de um objeto em um perodo de tempo

foco de controle (caixas de ativao)


um retngulo alto e estreito que mostra o perodo durante o qual um objeto est desempenhando uma ao
62

UML - Diagrama de Seqncia Objetos e papis


As interaes acontecem entre objetos (ou outras instncias) e no em classes Nos diagramas de interao, objetos que desempenham papis diferentes podem ser modelados como objetos diferentes

UML - Diagramas de Interao (Diagrama de Seqncia)


Papel das classes
descreve a forma como um objeto vai se comportar dentro de um contexto

63

64

UML - Diagramas de Interao (Diagramas de Seqncia)


Caixas de ativao
representam o momento no qual um objeto precisa ter completado uma tarefa

UML Diagrama de Seqncia Mensagens


Mensagem
especificao de uma comunicao entre objetos, onde so passadas informaes, com a esperana de que alguma atividade ocorra Na maioria das vezes, uma mensagem resulta na execuo de uma operao

Tipos principais de mensagens



65

Chamada (Call) Retorno (Return) Envio (Send) Criao (Create) Destruio (Destroy)
66

11

UML - Diagramas de Interao (Diagramas de Seqncia)


Mensagens
so a comunicao entre objetos, representadas por setas.

UML - Diagramas de Interao (Diagramas de Seqncia)


Linhas de vida
representam a presena de um objeto no decorrer do tempo

O objeto somente recebe a mensagem se estiver em um determinado estado

67

68

UML - Diagramas de Interao (Diagramas de Seqncia)


Objetos podem ser destrudos (terminados)
usando-se uma seta rotulada <<destroy>> que aponta para um X

UML - Diagramas de Interao (Diagramas de Seqncia)


Repetio ou loop
representada por um retngulo a condio para a existncia do loop colocada no canto inferior esquerdo

69

70

UML - Diagrama de Seqncia: Exemplo


Jose : Chamador a {b - a < 1 seg.} b c {d - c < 1 seg.} d EmpresaTelefnica: Central Antonio : Chamado

UML Diagramas de Interao (Diagrama de Colaborao)


Caractersticas que o diferencia do diagrama de seqncia:
indica como um objeto est vinculado a outro

1: retira fone do gancho 2: tom de discar 3: discagem do nmero chamado 4: tom de controle 5: toque de chamada 6: retira fone do gancho 7: conversao 8: conversao

indica a ordem temporal de uma mensagem (nmero de seqncia)


Praticamente tudo o que pode ser mostrado em um Diagrama de Seqncia tambm pode ser mostrado em um Diagrama de Colaborao. Assim, a partir de um Colaborao. podepode-se transformar no outro

9: repe fone no gancho

10: tom de ocupado 11: repe fone no gancho

71

72

12

UML - Diagramas de Interao (Diagramas de Colaborao)


Papel da classe
descreve como a classe se comporta

UML - Diagramas de Interao (Diagramas de Colaborao)


Mensagens so numeradas pela ordem de execuo
porque no h uma forma explcita de denotar o tempo

73

74

UML - Diagrama de Colaborao Exemplo


1: retira fone do gancho 3: discagem do nmero chamado 9: repe fone no gancho EmpresaTelefnica : Central 5: toque de chamada 8: conversao 10: tom de ocupado

UML: Diagramas de Estados/ Diagramas de Statecharts


Descrevem comportamento dinmico de um sistema frente a estmulos externos Modelam objetos reativos cujos estados so disparados por eventos especficos Mostram as interaes existentes entre os objetos do sistema
especificam as seqncias de estados de um objeto em resposta aos eventos
75 76

Jose:Chamador

7: conversao 4: tom de controle 2: tom de discar

11: repe fone no gancho 6: retira fone do gancho

Antonio:Chamado

UML - Diagrama de Estados


Elementos:
Estado Transio Evento Ao e Atividade

Diagrama de Estado Estado


uma condio ou situao durante a vida de um objeto durante a qual ele satisfaz alguma condio, executa alguma atividade ou espera por algum evento
representam situaes durante a vida de um objeto

Exemplos:
Ocioso Recebendo Pagamento Entregando item
77 78

13

Exemplo: Mquina de Vendas


entrada de moedas (quant.)

Diagrama de Estado Estado inicial


Estado especial que, explicitamente, mostra o incio do diagrama de estado Voc pode ter exatamente um estado inicial em cada diagrama de estado

Ociosa
cancelar / devolver moedas

Recebendo R$

[ item vazio ]

selecionar (item)

[ troco < 0 ]

Oferendo servios
[ troco = 0 ] [ troco > 0 ]

Despachando Item

Entregando Troco
79 80

Estado final
um estado de parada que representa um estado final ou terminal de um sistema

Partes de um Estado
Nome Aes de entrada (Entry) Aes da sada (Exit) Atividades (do:)

81

82

Ao de Entrada (Entry)
Quando entra no estado a ao executada Exemplo
ao entrar no estado Acompanhar, a ao Entry setModo(onAcompanhar) executada

Ao da sada (Exit)
Quando sai do estado a ao executada Exemplo
ao sair do estado Acompanhar, a ao Exit setModo(offAcompanhar) ser executada

83

84

14

Atividades (do:)
Enquanto estiver no estado, o objeto faz algo que continuar ser executado at ser interrompido por um evento Exemplo
enquanto estiver no estado Acompanhar atividade do: seguirAlvo ser executada a

Representao de um estado

Acompanhar entry: setModo(onAcompanhar) exit: setModo(offAcompanhar) do: seguirAlvo

85

86

Transio
um relacionamento entre dois estados
Indica que o objeto no primeiro estado ir executar certas aes e entrar no segundo estado quando o evento especificado ocorrer e as condies especificadas forem satisfeitas

Transio
Utiliza-se transies de estado para conectar dois estados em um diagrama de estado ou mostrar transies de um estado para ele mesmo O cone para uma transio de estado uma linha com uma ponta de flecha apontando para o prximo estado
Evento
Ocioso

uma mudana de estado causada por um evento

Ao
Esfriando

Quente demais/Esfriar

Transio
87 88

Transio
Rotular a transio com o evento que a ativou e a ao resultante.

Partes da transio
Estado fonte Evento de disparo Condio de guarda Ao Estado alvo

89

90

15

Evento de disparo
Ocorrncia de um estmulo que pode disparar uma transio de estado Ex: Apertar o boto do mouse, Discar um dgito (nmero) possvel haver uma transio sem um evento de disparo

Condio de guarda
Expresso booleana entre [ ] colocada aps o evento de disparo avaliada apenas aps a ocorrncia do evento de disparo da transio

91

92

Ao
Resposta instantnea a uma transio
usualmente associada a uma transio, embora possa ser associada a um estado

Exemplo: Sistema de disparo de mssel


evento t emp oral s inal de en vio a ps 2 s egundos / s end c . est V ivo Auto-transi o

Ocioso

Ac om panhar

al voE m ( p ) [ Am eaa ] / t. adic ioneA lvo( p) evento de disparo c om parm etros ao guarda contato

Disparando

93

94

Subestados
Registration A dd student[ Count < 10 ] A dd s tud ent / Set c ount = 0 Initializ ation do: Initialize c ourse

Concorrncia
Concorrncia dentro de um objeto Concorrncia entre objetos

Open

Cancelled d o: Send c a ncell at ion not ice s Canc el c ourse

[ [Count = 10]/ClosedCourse StopC ount = 10 ] ^Course Report.Create report

Clos ed entry: Finalize c ourse exit: ^CourseRoster.Create roster ^Course.CreateReport

95

96

16

Concorrncia dentro de um objeto


Pode ser pontilhadas mostrada com parties

Concorrncia dentro de um objeto


Relgio Ligado

alarmeON

12hs InserirBateria

Normalmente surge de dois ou mais atributos ortogonais

alarmeOFF

24hs

acabouBateria

97

98

Concorrncia entre objetos


Mostrada como uma diagramas de estados coleo de

Concorrncia entre objetos


Diagrama de Classes Carro

Transmisso

Ignio

Freios

Acelerador

Cada objeto mantm o seu prprio estado concorrentemente com outros objetos
Ignio

Diagrama de Estados
girar a chave para ligar [cmbio neutro]

soltar a chave

Usualmente corresponde a agregao no Diagrama de Classes


99

desligado

iniciando
girar a chave para desligar

ligado

100

Dicas
Somente construa Diagrama de Estados para classes de objetos com um comportamento dinmico significativo Nem todas as classes necessitam de um Diagrama de Estados Somente considere os atributos quando da definio de um estado relevantes

Relao entre Diagrama de Classes e de Estados


Diagramas de estados especificam uma seqncia permitida de mudanas nas classes do Diagrama de Classes Constri-se um Diagrama de Estados para cada classe com comportamento temporal significante
Objetos se comunicam pelo envio e resposta a eventos
102

Nem todos os atributos mostrados nas classes precisam ser usados no Diagrama de Estados
101

17

Notao
Estado 1 evento Estado-2

UML - Diagrama de Estados Exemplo


Telefonando

Evento com condio


Estado-1 evento [condio] Estado-2 Subestado
Dgito(n)

Estados Inicial e Final


Estado Inicial Estado Intermedirio resultado
Iniciando entry: IniciaTomDiscagem Dgito(n) Discando entry: ComporNmero(n) Finaliza ligao [ NmeroVlido() ]

Evento que dispara uma ao


Estado-1 evento / ao Estado-2

103

104

UML - Diagramas de Atividades


Mostram o fluxo entre atividades (aes noatmicas) So semelhantes aos antigos fluxogramas So muito usados para modelar atividades concorrentes

UML - Diagrama de Atividades Atividade


Representa as atividades dos objetos que no podem ser interrompidas

105

106

UML - Diagrama de Atividades Transio


Indica o relacionamento entre as atividades.

Transio e Condies
Transio sem condies so disparadas assim que as atividades correspondentes terminam Transio com condies s disparam quando a atividade termina e as condies so satisfeitas

107

108

18

UML - Diagrama de Atividades Fluxo de Objeto


Refere-se criao e modificao de objetos por atividades
uma seta de uma atividade a um objeto indica que a atividade cria ou influencia o objeto

UML - Diagrama de Atividades Estado Inicial e Final

109

110

UML - Diagrama de Atividades Deciso


Um losango representa uma deciso com caminhos alternativos

UML - Diagrama de Atividades Sincronizao


Uma barra de sincronizao ajuda a ilustrar transies paralelas

111

112

Pessoa
[sem caf]

[sem Coca]

Procurar bebida

Concorrncia, Forks e Joins


Barras de sincronizao so usadas para especificar forks e joins
Um fork representa um nico fluxo de controle em vrios fluxos de controle concorrentes Um join representa a sincronizao de dois ou mais fluxos de controle concorrentes
Join

Fork
Colocar caf no filtro

[achou caf]

[achou Coca]

Adicionar gua mquina

Pegar xcara

Pegar lata de Coca

Colocar filtro na mquina

Ligar mquina

Filtrar caf

113

Colocar caf na xcara

Beber

114

19

Concorrncia, Forks e Joins


Atividades depois de um fork podem ser realizadas em qualquer ordem ou ao mesmo tempo Para que as atividades depois de um join possam ser realizadas, todas as atividades antes do join devem ser concludas

UML - Diagrama de Atividades Swimlanes (raias)


So usadas para definir quais so as classes (ou conjuntos de classes) responsveis pela realizao de cada atividade So especialmente teis na modelagem de processos empresariais Em muitos casos, os swimlanes implicam concorrncia ou pelo menos independncia das atividades
115 116

Diagrama de Atividades: Swimlanes (raias)


Agrupam atividades relacionadas, em uma coluna

Cliente
H
Solicitar produto

Vendas

Estoque

Proce s sar pe dido Cole tar m ate riais

Enviar pe dido

Re cebe r pe dido

Cobrar do clie nte

Pagar conta Ence rrar pe dido

117

118

UML - Diagrama de Pacotes


Pacotes agrupam elementos de modelagem
Grupo de classes que colaboram entre si (Pressman, 2005)

UML - Diagrama de Pacotes


Pode-se tambm listar os atributos de um pacote

Pacotes podem conter classes, classes abstratas, pacotes, etc...


L in h a d e M o n ta g e m
Graduao (from Acadmico)

relacionamentos,

Acadmico

PosGraduao (from Acadmico)

119

120

20

UML - Diagrama de Pacotes: Dependncia


As dependncias definem um relacionamento no qual as modificaes em um pacote afetam outro pacote

UML Diagrama de Pacotes


Exemplo de Dependncia entre pacotes

Interface GUI

Compra

Venda

121

122

UML Diagrama de Componentes


Componente
unidade de software independente, em um determinado domnio, que oferece servios por meio de interfaces bem definidas (Gimenes e Huzita, 2005) uma parte fsica e substituvel de um sistema, que realiza um conjunto de interfaces

UML - Diagrama de Componentes


Diagramas de componentes podem usados para modelar: aspectos fsicos de um banco de dados
cdigo fonte de um aplicativo uma API, etc.

ser

Diagrama de componente
usado para modelar os aspectos fsicos de um sistema
123

A nica restrio que o que est sendo modelado deve ser fsico (formado por bits) e no conceitual (ou lgico)
124

UML - Diagrama de Componentes


Componentes so coisas que podem ser executadas em ns (processadores, dispositivos, etc.) Exemplos de componentes
executveis, bibliotecas, tabelas, arquivos e documentos

UML - Diagrama de Componentes Componente


Um componente um bloco de construo fsico do sistema. representado por um retngulo com tabs.

Um componente, tipicamente, uma verso fsica de elementos lgicos, como classes e interfaces
125 126

21

UML - Diagrama de Componentes Interface


Uma interface descreve um grupo de operaes usadas ou criadas por componentes

UML - Diagrama de Componentes Interface

Component1

Interface_1

Interfaces Requeridas
Interface_2

Interface Fornecida

Interface_3

127

128

UML - Diagrama de Componentes Dependncias


Indica dependncias entre componentes usando linhas pontilhadas

Exemplos

Autenticao.exe

Animator.exe

IScripts

IModelos

IAnimacao

IRenderizao

129

130

Componentes e dependncias
Format.dll JanelasComuns.dll

UML - Diagramas de Implantao (Deployment)


Usados para modelar a topologia do ambiente em que o sistema ser executado So compostos por ns e associaes (relacionamentos de comunicao)
um n pode ser, por exemplo, um computador, uma rede, um disco rgido, um sensor, etc.

Palavras.exe

Palavras.ini Palavras.hlp

Ortograf.dll

131

132

22

UML - Diagramas de Implantao


Geralmente s fazem sentido para sistemas que rodam em vrias mquinas ou dispositivos
Sistemas cliente/servidor Sistemas distribudos

UML - Diagrama de Implantao N


Um n um recurso fsico computacional que existe em tempo de execuo e executa componentes de cdigo
geralmente, possui memria e, muitas vezes, capacidade de processamento

Modelam o inter-relacionamento recursos de infra-estrutura e de rede

entre

133

134

UML - Diagrama de Implantao Associao


Uma associao se refere a uma conexo fsica entre ns
por exemplo uma Ethernet, um link de satlite

UML - Diagrama de Implantao Componentes e Ns


Coloque os componentes dentro do n que o implanta

135

136

UML - Diagrama de Implantao Esteretipos


Smbolos como PCs, Workstations, Servidores e Dispositivos so muito usados em diagramas de implantao
tornam os diagramas mais claros

UML Diagrama de Implantao


Exemplo:

1. Processador

PC Pentium 300

2. Dispositivo

Modem

3. Conexo
137

PC Pentium 200

Fibra tica

Impressora HP 700

138

23

PC - G309

Nestscape Communicator 5.0

Principal.html

PC PC PC

servidorWeb

FormCadastro.html
Autenticao.exe servidorDeArquivos

Internet

<<roteador>> CISCO 12000

Cadastro.exe

<<rede>> rede local Ethernet (1Gbit)


FormEntrada.html

servidorBancoDeDados

O SGBD a ser utilizado ainda no foi escolhido.

SGBD

<<processador>> Servidor de Banco de Dados


139

<<processador>> Servidor Web

<<processador>> Servidor de Arquivos


140

Concluso
Tecnologia OO recente e veio para ficar
Outras abordagens recentes baseadas em OO
Desenvolvimento Baseado em componentes Desenvolvimento Orientado a Aspectos

Referncias Bibliogrficas
Utilizando UML e Padres Craig Larman, Bookman, 2003. Rumbaugh, J., Jacobson, I., Booch, G.; UML, Campus, 1999. Medeiros, E. Desenvolvendo Software com UML definitivo 2.0, Makron Books, 2004. Preesman, R. S. Software Engineering: A Practitioners Approach, McGraw-Hill, sixth edition, 2005. Gimenes, I.; Huzita, E. Desenvolvimento baseado em Componentes: Conceitos e Tcnicas, Cincia Moderna, 2005.

OO impe qualidade, produtividade profissionalismo na construo de sistemas

Existem mtodos, tcnicas e ferramentas de software OO que acompanham o processo de desenvolvimento do software desde a anlise at a implementao
141

142

Mais Material sobre UML ...


Esteretipos (Stereotypes)

http://www.rational.com (Rational) http://www.omg.org (Object Management Group) Page-Jones, M.; Fundamentos do desenho orientado a objeto com UML, Makron Books, 2001. Furlan, J. D.; Modelagem de Objetos Atravs da UML, Makron Books, 1998. Rumbaugh, J., Jacobson, I., Booch, G.; The Unified Modeling Language Reference Manual, AddisonWesley, c1999. Conallen, J.; Building Web Applications with UML, Addison-Wesley, 1999. Fowler, M.; Scott, K.; UML Essencial, Bookman, 2000.
143 144

Mecanismo de extenso que permite estender o metamodelo para suprir necessidades que no encontramse entre os meta-elementos disponveis, desde que a definio semntica da prpria linguagem no seja ferida Um esteretipo pode ser aplicado a classes, relacionamentos de dependncia, atributos, operaes, casos de uso, etc. Ex: <<abstract>>, <<metaclass>>, <<extends>>

24

Histria da Semntica e da Notao


Diagrama de caso de uso - similar aos do mtodo OOSE Diagrama de classes - fuso do OMT, Booch e maioria dos mtodos OO, com novos elementos Diagrama de estado - statechart de Harel Diagrama de atividade - possui a mesma semntica do diagrama de estado e parecido com diagramas de workflow Diagrama de seqncia - so encontrados em diversos mtodos sob muitos nomes (interao, eventos, mensagem) Diagrama de colaborao - foi adaptado do Booch e Fusion Diagramas de implementao (diagrama de componente e diagrama de disponibilidade) - so derivados dos diagramas de mdulo e processo do mtodo Booch
145 146

Exerccio 1

Uma empresa atende pedidos de seus clientes, que podem ser atacadistas ou varejistas. Para o atendimento de pedidos o cliente deve estar cadastrado (nome, endereo, cpf/cnpj). Ao enviar um pedido esse ser aceito se o produto solicitado estiver cadastrado e se o cliente no excedeu seu limite de crdito. Se o produto no estiver cadastrado, uma mensagem enviada ao cliente que seu pedido foi cancelado. Os pedidos de atacadistas constam de um s produto em grande quantidade. Os pedidos de varejistas constam sempre de mais de um produto em quantidades inferiores h 200 unidades. Os produtos podem ser perecveis ou no. Os produtos perecveis possuem uma taxa de desconto que no existe para os outros produtos. Se no existir a quantidade suficiente do produto, o pedido ser colocado em pendncia at que o uma nova remessa do mesmo seja reposta em estoque. A empresa emite uma solicitao de compra aos fornecedores dos produtos em falta, semanalmente. Quando os produtos comprados chegam empresa, a solicitao de compra conferida com a nota fiscal do fornecedor e os pedidos pendentes so atendidos, com prioridade. A nica forma de pagamento disponvel para qualquer tipo de cliente por meio de faturas emitidas quando as compras so realizadas e com data de vencimento prestabelecida
147 148

Exerccio 2

A empresa EqManut tem como principal atividade a prestao de servios de manuteno em equipamentos mdicos. A empresa composta basicamente de tcnicos em eletrnica e pessoal administrativo. A empresa atualmente possui contratos com diversos clientes. Estes contratos so estabelecidos pelos vendedores. Todo contrato referente a um determinado cliente e envolve um ou mais equipamentos. Os equipamentos dos contratos devem obrigatoriamente ser de tipos de equipamentos que a empresa esteja habilitada a oferecer manuteno. Para cada equipamento deve ser informado sua data de fabricao e seu nmero de srie, e a empresa atribui um nmero de manuteno que deve ser informado pelo cliente quando este solicitar uma manuteno. Os contratos recebem um nmero seqencial e possuem um perodo de validade. O valor de um contrato estabelecido em funo do nmero de equipamentos e seus respectivos tipos uma vez que existe um preo de manuteno para cada tipo de equipamento. O pagamento de um contrato parcelado em cotas com valores fixos. A solicitao de servio tcnico realizada atravs de chamadas por telefone. As chamadas so recebidas pelo atendente que solicita ao cliente o nmero do equipamento e o motivo da chamada. Antes de abrir um chamado o atendente verifica se o equipamento est coberto por um contrato vlido e se existem pagamentos com atraso superior a 30 dias. Com base nas chamadas recebidas e os motivos informados pelo cliente, um supervisor aloca um tcnico para cada chamada para que seja efetuado o servio. Quando um tcnico retorna da visita ao cliente, este apresenta um relatrio tcnico, contendo os equipamentos reparados, os componentes trocados bem como os problemas identificados e as solues adotadas. A empresa recebe de 50 a 70 chamados por dia e trabalha com dois supervisores, quarenta tcnicos, um atendente. O sistema deve controlar todo as etapas de uma chamada, desde o momento do 149 registro at a finalizao do servio.

25

Você também pode gostar