Beruflich Dokumente
Kultur Dokumente
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
ndice
Introduo
O que a UML?
Diagramas
Diagrama de casos de utilizao
Valor da UML
Origens da UML Parceiros da UML
Diagrama de classes
Diagrama de objectos Diagrama de componentes Diagrama de distribuio Diagrama de sequncia Diagrama de colaborao Diagrama de estados Diagrama de actividades
Modelos e diagramas
Elementos de modelao
Referncias
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
O que a UML?
UML = Unified Modeling Language UML uma linguagem (notao com semntica associada) para
visualizar especificar construir documentar
os artefactos de um sistema com uma componente intensiva de software (software intensive system)
Valor da UML
um standard aberto
verso 1.1 aprovada pelo OMG (Object Management Group) em Novembro de 1997 verso 1.3 aprovada em Junho de 1999
Suporta diversas reas de aplicao baseado na experincia e necessidades da comunidade de utilizadores suportado por muitas ferramentas
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Origens da UML
Meyer
Before and after conditions
Harel
Statecharts
Gamma, et al
Frameworks and patterns,
Booch
Booch method
HP Fusion
Operation descriptions and message numbering
Rumbaugh
OMT
Embley
Singleton classes and high-level view
Jacobson
OOSE
Wirfs-Brock
Responsibilities
Shlaer - Mellor
Object lifecycles
Odell
Classification
5
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Parceiros da UML
Rational Software Corporation Hewlett-Packard I-Logix IBM ICON Computing Intellicorp MCI Systemhouse Microsoft
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Modelos e Diagramas
Um modelo uma representao em pequena escala, numa perspectiva particular, de um sistema existente ou a criar
Atitude de abstraco (omisso de detalhes) fundamental na construo de um modelo Modelos so a linguagem por excelncia do projectista (designer) Modelos so veculos para comunicao com vrios interessados (stakeholders) Modelos permitem raciocinar acerca do sistema real, sem o chegar a construir
Ao longo do ciclo de vida de um sistema so construdos vrios modelos, sucessivamente refinados e enriquecidos
Um modelo constitudo por um conjunto de diagramas (desenhos) consistentes entre si, acompanhados de descries textuais dos elementos que aparecem nos vrios diagramas
Um diagrama uma vista sobre um modelo O mesmo elemento (exemplo: classe) pode aparecer em vrios diagramas de um modelo
Modelos e Diagramas
Use Case Use Case Diagrams Diagramas Diagrams de Casos de Utilizao
State State Diagrams Diagramas Diagrams de Classes State State Diagrams Diagramas Diagrams de Objectos
Modelos
Diagramas de Actividades
UML Unified Modeling Language
Distribuio
Elementos estruturais
classe, interface, colaborao, caso de utilizao, classe activa, componente, n
Elementos de comportamento
interaco, mquina de estados
Elementos de agrupamento
pacote (package), subsistema
Outros elementos
nota
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Relaes
Dependncia Associao Generalizao Concretizao (realization)
Fonte: Grady Booch
Mecanismos de extensibilidade
Esteretipos Propriedades (tagged values)
Restries (constraints)
10
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
11
12
Diagrama de Classes
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
13
Diagrama de Classes
composition
14
Diagrama de Objectos
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
15
Diagrama de Objectos
16
Diagrama de Componentes
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
17
Diagrama de Componentes
18
Captura a topologia do hardware de um sistema Construdo como parte da especificao da arquitectura Objectivo
Especificar a distribuio de componentes Identificar estrangulamentos de desempenho
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
19
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Diagrama de Sequncia
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
21
Diagrama de Sequncia
22
Diagrama de Colaborao
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
23
Diagrama de Colaborao
24
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
25
26
Diagrama de Actividades
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
27
Diagrama de Actividades
28
Referncias
Livros
The Unified Modeling Language User Guide, Grady Booch et al, AddisonWesley, October, 1998 UML, Metodologias e Ferramentas CASE, Alberto Silva e Carlos Videira, Centro Atlntico, 2001
Especificaes
www.uml.org
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
29
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
30
Objectivo
Um diagrama de casos de utilizao de um sistema mostra actores (tipos de utilizadores), casos de utilizao e relaes entre eles
Fundamental acompanhar de descries textuais de casos de utilizao
Permite:
mostrar para que serve o sistema (a utilidade do sistema), ignorando a forma como est organizado internamente especificar o contexto do sistema
- com quem interage (actores) e com que finalidade (casos de utilizao)
Pode referir-se a um sistema de software, um sistema de negcio ou organizao, um equipamento, uma classe, etc. elaborado por analistas e especialista de domnio nos primeiros estgios do desenvolvimento
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
31
Casos de utilizao
para que serve o sistema (utilidade) num vdeo-gravador: reproduzir cassete, gravar cassete nem sempre evidente a partir da observao do interface! um caso de utilizao engloba uma sequncia de interaces com elementos da interface, para atingir resultado til (produto ou servio) para o utilizador!
Interface
sistema como caixa preta o que visvel na fronteira do sistema (estrutura e funcionamento) num vdeo-gravador: teclas, visor, abertura para cassete, tomadas
Implementao
sistema como caixa branca acrescenta o que est escondido (estrutura e funcionamento) num vdeo-gravador: motor, cabeas de gravao, sintonizador, ...
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
32
Exemplo 1: Telemvel
Telemvel
(equipamento)
nome do sistema fronteira do sistema
actor
Efectuar chamada
Rede
Utilizador
Receber chamada
caso de utilizao
Usar a agenda
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
33
Exemplo 2: Restaurante
Restaurante
(negcio)
Servir almoo
casos de utilizao primrios - servem directamente clientes
Cliente
Servir jantar
Comprar bens
Fornecedor
- utilizador ou utilizado? - o que importa que interage com o sistema!
UML Unified Modeling Language
caso de utilizao secundrio - no serve directamente clientes - envolve interaco com o exterior - serve casos de utilizao primrios - tem valor para o fornecedor
34
Emitir factura
35
Actores
ou
Cliente
actor Cliente
Um actor em relao a um sistema um papel que algum ou alguma coisa do ambiente envolvente desempenha quando interage com o sistema
Actor = classe
classes so frequentemente usadas para modelar papis que objectos individuais podem desempenhar
Actor indivduo
o mesmo indivduo pode interagir com o sistema em vrios papis (como cliente, como fornecedor, etc.)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
36
Casos de utilizao
Servir almoo
ou
Servir almoo
Definio: Um caso de utilizao uma descrio de um conjunto de sequncias de aces(1), incluindo variantes(2), que um sistema realiza(3) para produzir um resultado observvel com valor para um actor(4,5)
(1) a definio d nfase sequncia (modo) de funcionamento, mas este detalhe s surge numa 2 iterao, depois de se ter alguma ideia do interface do sistema (2) a sequncia concreta de aces pode variar de instncia para instncia do caso de utilizao (3) interessam-nos mais as aces do sistema, pois so essas que temos de implementar, mas tambm interessa descrever as aces do actor (5) esta utilidade ou objectivo que importa descrever numa 1 iterao (6) o resultado pode ser um produto, um servio, etc.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
37
Pensar em cada actor e nas interaces que tem com o sistema Um caso de utilizao agrupa interaces elementares de actores com elementos da interface do sistema, mas qual deve ser o nvel de agrupamento? Caso de utilizao simples: utilizao de funcionalidade de gro mais fino possvel que, uma vez implementada, acrescenta valor (do ponto de vista dos utilizadores) ao sistema que est a ser desenvolvido
Exemplo no multibanco:
"introduzir carto" no um caso de utilizao porque no tem valor isoladamente "levantar dinheiro" um caso de utilizao porque tem valor para o detentor do carto
O caso de utilizao inclui todas as aces a montante (de preparao) e a jusante (de finalizao) necessrias (numa relao de um para um) produo do resultado
- Levantamento no multibanco, vai desde a introduo do carto at recolha do carto, do talo e do dinheiro
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
38
1) essncia / utilidade
descrio breve independente da interface que o sistema apresenta descrever o objectivo ou resultado a produzir opcionalmente, indicar lista de features e limitaes (nvel de requisitos)
2) interface
descrio de sequncias de funcionamento normais e excepcionais, em termos de interaces dos actores com elementos da interface opcionalmente, acompanhar de desenhos da interface para o utilizador e de diagramas dinmicos indicar quando que o caso de utilizao comea e acaba, quando ocorrem interaces com os actores, que objectos so trocados, quem faz o qu (o sistema ou um actor) pode ser aproveitado para o no manual do utilizador
3) implementao
realizao do caso de utilizao por uma colaborao de objectos internos ao sistema sequncias de funcionamento detalhadas com (inter)aces internas ao sistema j no compete ao analista, mais sim ao projectista/implementador j no faz parte do modelo de casos de utilizao, mas sim do modelo de design
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
39
Objectivo:
servir uma refeio rpido a um cliente que se dirige ao restaurante ao almoo
Features e limitaes:
h dois pratos do dia pr-confeccionados, um de carne e outro de peixe, e uma lista fixa de pratos de preparao rpida no se fazem reservas
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
40
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
41
Actores modelam clientes, fornecedores, parceiros, etc. Casos de utilizao modelam processos de negcio
processos de negcio primrios: servem directamente clientes processos de negcio secundrios: no servem directamente clientes, mas envolvem interaco com o exterior e servem processos de negcio primrios
Nem todas as actividades de um sistema de negcio se podem englobar em processos de negcio, numa definio estrita
caso das actividades que no esto relacionadas, mesmo que indirectamente, com um actor individual essas actividades so englobadas em processos de suporte internos processos de gesto de recursos, planeamento, controlo, etc.
Processos de negcio e de suporte so relacionados e detalhados atravs de diagramas de actividades, at chegar a actividades que podem ser atribudas a trabalhadores ou equipas individuais
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
42
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
43
Formas de estruturar
Relao extend entre casos de utilizao Relao include entre casos de utilizao Relao de generalizao entre casos de utilizao Relao de generalizao entre actores
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
44
Para simplificar a descrio dos casos de utilizao, podem-se organizar os casos de utilizao em casos bsicos (casos de utilizao de acordo com a definio) e extenses aos casos bsicos, que traduzem partes ou modalidades acrescentadas condicionalmente (opes)
extend
Significado:
A caso bsico
B extenso
uma instncia do caso de utilizao A pode incluir (sujeito a condies especificadas na extenso) o comportamento especificado por B o caso bsico deve fazer sentido sozinho os actores interagem com o caso bsico (A)
Em software, corresponde normalmente a seguir um boto ou um link num formulrio que desencadeia uma aco ou d acesso a outro formulrio ou relatrio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
45
Exemplo:
Servir jantar extend Servir uma entrada extend Servir uma sobremesa extend Servir luz de velas
Podem-se indicar explicitamente os pontos em que um caso de utilizao bsico pode ser estendido (pontos de extenso)
Servir jantar
extend (sobremesa)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
46
Eliminar Disciplina
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
47
Quando vrios casos de utilizao tm uma sub-sequncia de funcionamento comum, conveniente separar essa parte comum para um novo caso de utilizao que includo pelos primeiros Notao:
A include B (parte comum a outros casos de utilizao alm de A)
Significado
uma instncia do caso de utilizao A inclui obrigatoriamente o comportamento especificado por B os actores interagem com A na descrio textual de A: include(B)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
48
Exemplo:
Servir jantar
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
49
Relao de generalizao: entre uma coisa mais genrica e uma coisa mais especializada Significa que o caso de utilizao "filho" (mais especializado) herda o comportamento, significado e actores do caso de utilizao "pai" (mais genrico)
O filho pode adicionar ou substituir comportamento do pai O filho pode aparecer em qualquer contexto em que o pai pode aparecer
50
Exemplo:
Cliente
Um cliente empresarial um (is a) cliente O cliente empresarial herda as associaes (de comunicao com casos de utilizao) do cliente genrico Permite simplificar e estruturar os diagramas
Cliente Empresarial
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
51
Num sistema complexo, podem existir demasiados casos de utilizao para visualizar com clareza num nico diagrama!
Uma soluo: um diagrama de casos de utilizao inicial, com pacotes de casos de utilizao, e um diagrama de casos de utilizao relativo a cada pacote
Critrios de agrupamento de casos de utilizao em pacotes:
- por actores - por sub-sistemas
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
52
Exemplo: Restaurante
Restaurante
Servir almoo Servir uma refeio Cliente extend extend Servir uma entrada Servir uma sobremesa Servir luz de velas include Pagar refeio
53
Empregado de mesa
Empregado de caixa
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
54
Cozinheiro
Registar pedido
Empregado de mesa
Tirar a conta
Pagar a conta
Empregado da caixa
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
55
Preparar encomenda
Cozinheiro
Registar compra
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
56
Caso de Estudo:
Transportes Urbanos
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
57
Objectivo
Modelar uma empresa de transportes urbanos cuja misso transportar passageiros ao longo de carreiras pr-definidas, entre paragens, com horrios estabelecidos, usando veculos guiados por motoristas, cobrando bilhetes ou usando ttulos de transporte Tratando-se de uma empresa moderna, possui sistemas de seguimento dos veculos o que permite monitorizar o cumprimento dos horrios e fornecer informao aos passageiros no s sobre os horrios mas sobre o tempo que demora efectivamente um veculo a atingir uma paragem
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
58
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
59
Objectivo
Pretende-se projectar o Sistema de Informao de uma Biblioteca (SIB), para apoiar as seguintes actividades:
gesto de aquisies de publicaes
- registar a aquisio
gesto de requisies
- s os scios podem requisitar publicaes - requisio com levantamento, devoluo
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
60
Metodologia
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
61
Obter fotocpia de publicao <<include>> Levantar publicao Scio Requisitar publicao <<include>>
Devolver publicao
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
62
Leitor
Pessoa que se dirige biblioteca para consultar publicaes, sendo ou no scio da biblioteca.
Scio
Leitor que est inscrito como scio da biblioteca.
Fornecedor
Empresa a quem a biblioteca adquire publicaes.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
63
Consultar publicao
O leitor consulta a publicao dentro das instalaes da biblioteca. Para fins de gesto, mantido um contador do nmero de vezes que cada publicao consultada dentro da biblioteca.
Requisitar publicao
A biblioteca empresta uma publicao a um scio para consulta no exterior da biblioteca mediante uma requisio. Envolve dois contactos com a biblioteca, para o levantamento e a devoluo da publicao.
Adquirir publicao
A biblioteca adquire livros a fornecedores.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
64
Leitor
(f rom Modelo de Casos de Utilizao da Biblioteca)
Gestor
Funcionrio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
65
Leitor
Pessoa que se dirige biblioteca para consultar publicaes, sendo ou no scio da biblioteca.
Funcionrio
Empregado da biblioteca que atende os leitores e scios.
Gestor
Empregado da biblioteca que trata das aquisies de publicaes e consulta estatsticas de utilizao.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
66
Registar scio
Inscrever leitor como scio da biblioteca.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
67
Registar publicao
Registar publicao j existente (na instalao do sistema) ou adquirida.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
68
Exerccios
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
69
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
70
ndice
Objectivo dos diagramas de classes Objectos, classes, atributos e operaes Relaes entre classes: associao, agregao e composio Relaes entre classes: generalizao
71
Um diagrama de classes serve para modelar o vocabulrio de um sistema, do ponto de vista do utilizador/problema ou do implementador/soluo
Ponto de vista do utilizador/problema na fase de captura e anlise de requisitos, em paralelo com a identificao dos casos de utilizao Vocabulrio do implementador/soluo na fase de projecto (design)
Construdo e refinado ao longo das vrias fases do desenvolvimento do software, por analistas, projectistas (designers) e implementadores Tambm serve para:
Especificar colaboraes (no mbito de um caso de utilizao ou mecanismo) Especificar esquemas lgicos de bases de dados Especificar vistas (estrutura de dados de formulrios, relatrios, etc.)
72
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
73
Objectos
Um objecto algo com fronteiras bem definidas, relevante para o problema em causa, com estado,
modelado por valores de atributos (tamanho, forma, peso, etc.) e por ligaes que num dado momento tem com outros objectos
comportamento
um objecto exibe comportamentos invocveis (por resposta a chamadas de operaes) ou reactivos (por resposta a eventos)
e identidade
no espao: possvel distinguir dois objectos mesmo que tenham o mesmo estado
- exemplo: podemos distinguir duas folhas de papel A4, mesmo que tenham os mesmos valores dos atributos
no tempo: possvel saber que se trata do mesmo objecto mesmo que o seu estado mude
- exemplo: se pintarmos um folha de papel A4 de amarelo, continua a ser a mesma folha de papel
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
74
No desenvolvimento de software orientado por objectos, procurase imitar no computador o mundo real visto como um conjunto de objectos que interagem entre si Muitos objectos computacionais so imagens de objectos do mundo real Dependendo do contexto (anlise ou projecto) podemos estar a falar em objectos do mundo real, em objectos computacionais ou nas duas coisas em simultneo Exemplos de objectos do mundo real:
o Sr. Joo a aula de ES no dia 11/10/2000 s 11 horas
75
Classes (1)
No desenvolvimento de software OO, no nos interessam tanto os objectos individuais mas sim as classes de objectos
Uma classe um descritor de um conjunto de objectos que partilham as mesmas propriedades (semntica, atributos, operaes e relaes)
Trata-se de uma noo de classe em compreenso, no sentido de tipo de objecto, por oposio a uma noo de classe em extenso, como conjunto de objectos do mesmo tipo
Um objecto de uma classe uma instncia da classe A extenso de uma classe o conjunto de instncias da classe Em Matemtica, uma classe um conjunto de objectos com uma propriedade em comum, podendo ser definida indiferentemente em compreenso ou em extenso
C = {x |N : x mod 3 = 2} = {2, 5, 8, 11, 14, ...}
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
76
Classes (2)
O conjunto de todos os objectos num determinado contexto forma um universo (UoD - Universe of Discourse)
classe
UoD
x Joo x Maria x Rui Aluno Curso x Informtica x Electrotecnia Funcionrio
objecto
ligao
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
77
Classes (3)
Decomposio orientada por objectos : comea por identificar os tipos de objectos (classes) presentes num sistema
contrapor com decomposio funcional ou algortmica tipos de objectos so mais estveis do que as funes, logo a decomposio orientada por objectos leva a arquitecturas mais estveis
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
78
Classes (4)
Habitualmente escreve-se o nome da classe no singular (nome de uma instncia), com a 1 letra em maiscula Para se precisar o significado pretendido para uma classe, devese explicar o que (e no ...) uma instncia da classe
Exemplo: Um aluno uma pessoa que est inscrita num curso ministrado numa escola. Uma pessoa que esteve no passado inscrita num curso, mas no est presentemente inscrita em nenhum curso, no um aluno.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
79
Atributos de instncia
O estado de um objecto dados por valores de atributos (e por ligaes que tem com outros objectos)
Todos os objectos de uma classe so caracterizados pelos mesmos atributos (ou variveis de instncia)
o mesmo atributo pode ter valores diferentes de objecto para objecto
Atributos so definidos ao nvel da classe, enquanto que os valores dos atributos so definidos ao nvel do objecto
Exemplos:
uma pessoa (classe) tem os atributos nome, data de nascimento e peso Joo (objecto) uma pessoa com nome Joo Silva, data de nascimento 18/3/1973 e peso 68 Kg
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
80
Atributos de instncia
Atributos so listados num compartimento de atributos (opcional) a seguir ao compartimento com o nome da classe
nome do atributo
tipo de dados
81
Operaes de instncia
Objectos da mesma classe tm as mesmas operaes Operaes so definidos ao nvel da classe, enquanto que a invocao de uma operao definida ao nvel do objecto
Princpio do encapsulamento: acesso e alterao do estado interno do objecto (valores de atributos e ligaes) controlado por operaes
Nas classes que representam objectos do mundo real mais comum definir responsabilidades em vez de operaes Pessoa nome: string morada: string setMorada(novaMorada:string): bool
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
compartimento de operaes
82
Atributo esttico: tem um nico valor para todas as instncias (objectos) da classe
valor est definido ao nvel da classe e no ao nvel das instncias
Factura nmero: Long data: Date valor: Real ltimoNumero: Long = 0 criar(data:Date, valor:Real) destruir() valorTotal(): Real
retorna a soma dos valores de todas as facturas
Operao esttica: no invocada para um objecto especfico da classe Notao: nome sublinhado
Correspondem a membros estticos (static) em C++, C# e cria nova factura com a data e valor especificados, e um n sequencial atribudo Java
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Visibilidade:
+ (public) : visvel por todos
Toolbar # currentSelection: Tool # toolCount: Integer + getTool(i: Integer): Tool + addTool(t: Tool) + removeTool(i: Integer) - compact()
usada internamente por outras operaes
Princpio do encapsulamento: esconder todos os detalhes de implementao que no interessam aos clientes (utilizadores) da classe
permite alterar representao do estado sem afectar clientes permite validar alteraes de estado
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
84
Multiplicidade de atributo: nmero de valores que o atributo pode tomar do tipo especificado
por omisso 1 qual a diferena em relao a especificar a multiplicidade no prprio tipo de dados do atributo?
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
85
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
86
Associaes binrias
Participante-1
Participante-2
Uma associao uma relao entre objectos das classes participantes (um objecto de cada classe em cada ligao) No gera novos objectos Matematicamente,uma associao binria uma relao binria, i.e., um subconjunto do produto cartesiano das extenses das classes participantes Assim como um objecto uma instncia duma classe, uma ligao uma instncia duma associao Pode haver mais do que uma associao (com nomes diferentes) entre o mesmo par de classes Papis nos extremos da associao podem ter indicao de visibilidade (pblica, privada, etc.)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
87
Aluno
1 Curso
(sem restries)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
88
1..*
1, 3..5
- um ou mais
- um ou trs a 5
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
89
Associao reflexiva
Pode-se associar uma classe com ela prpria (em papis diferentes)
pai 0..1
me 0..1
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
90
Nome de associao
A indicao do nome opcional O nome indicado no meio da linha que une as classes participantes Pode-se indicar o sentido em que se l o nome da associao
Trabalha-para empregado Emprega
Empresa
empregador
Pessoa
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
91
Associaes unidireccionais
As associaes so classificadas quanto navegabilidade em:
bidireccionais
(normal) Class-1 Class-1
Class-2
Class-2
unidireccionais
um objecto da classe 1 tem a responsabilidade de dar o(s) objecto(s) correspondente(s) da classe 2 (nvel de especificao)
ou
um objecto da classe 1 tem apontador(es) para o(s) objecto(s) correspondente(s) da classe 2 (nvel de implementao)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
92
Classe-Associao
Association Name Class-1 Association Name Class-2
93
Associaes n-rias
Notao
Association Name Class-1 role-1 role-3 Class-3 role-2 Class-2
Multiplicidade
Class-1 0..1 Class-3
a cada par de objectos das restantes classes (1 e 2), correspondem 0 ou 1 objectos da classe 3
Class-2
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
94
Equipa
equipa
Jogador
Registo
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
95
Uma propriedade que designa um objecto de uma classe presente no modelo, deve ser modelada como uma associao e no como um atributo Exemplo:
Pas nome: string capital: string capital: Cidade 1 0..1 Pertence a * Cidade
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
96
*Associaes qualificadas
Classe A
qualificador
Associao
Classe B
Qualificador: lista de um ou mais atributos de uma associao utilizados para navegar de A para B "Chave de acesso" a B (acesso a um objecto ou conjunto de objectos) a partir de um objecto de A
para cada par Clube + n de scio 0..1
Clube
n de scio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
97
Agregao
Associao com o significado contm ( constitudo por) / faz parte de (part of)
Um jogador faz parte de uma equipa (num dado momento), mas tambm pode estar desempregado
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
98
Composio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
99
1
scrollbar Slider 2
1 body 1 Panel
title 1 Header
Window
Window
scrollbar: Slider title: Header body: Panel
2 1
1
100
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
101
Generalizao
Pessoa generalizao Aluno super-classe especializao sub-classe
Relao semntica is a ( um / uma) : um aluno uma pessoa Relao de incluso nas extenses das classes:
UoD
super-classe sub-classe x x x x objecto
102
Substitutabilidade
onde se espera um objecto da super-classe pode-se passar um objecto duma subclasse
Herana de interface
a subclasse herda as assinaturas (e significados) das operaes da super-classe
103
Polimorfismo
Mecanismo muito poderoso, que permite estender software atravs da criao de novas subclasses que so usadas a partir de classes pr-existentes (que dependem apenas da interface e no da implementao das operaes), sem que estas tenham conhecimento dessas extenses
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
104
Exemplo em C++
class Pessoa { private: string nome; Data dataNascimento; public: Pessoa(string, Data); string getNome() const; Data getDataNascimento() const; int getIdade() const; void setNome(string); void setDataNascimento(Data); virtual void imprime() const; };
class Aluno : public Pessoa { private: string curso; public: Aluno(string nm, Data, string crs); string getCurso() const; void setCurso(string); virtual void imprime() const; };
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
105
Hierarquias de classes
Em geral, pode-se ter uma hierarquia de classes relacionadas por herana / generalizao
em cada classe da hierarquia colocam-se as propriedades que so comuns a todas as suas subclasses evita-se redundncia, promove-se reutilizao!
(...)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
106
Aluno
Professor
Pessoa
Aluno
Professor
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
107
caso em que um objecto da superclasse pode pertencer simultaneamente a mais do que uma subclasse
{overlapping}
Subclass-1 Subclass-2
Subclass-1
Subclass-2
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
108
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
109
ocorre numa subclasse com mltiplas super-classes geralmente suportada por linguagens de programao OO
Acadmico nome e-mail {overlapping} Estudante curso Professor categoria pelo menos conceptualmente, existe uma super-classe comum
Professor-Estudante
reduo de horrio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
111
caso em que um objecto pode pertencer num dado momento a vrias classes, sem que exista uma subclasse que represente a interseco dessas classes (com herana mltipla) geralmente no suportado pelas linguagens de programao OO (pode ento ser simulada por agregao de papis)
Mdico Homem Mulher sexo Pessoa paciente Paciente exemplo de combinao legal: {Mulher, Paciente, Enfermeira}
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
funo Enfermeira
Fisioterapeuta
112
ArbitraryIcon
edge:LineCollection
display() isInside(p:Point):Bool
Button
Fonte: The UML User Guide, Booch et al
display()
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
113
Joo Maria
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
114
Agregao
Classe-Associao
Composio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
115
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
116
Relao de dependncia
Relao de uso entre dois elementos (classes, componentes, etc.), em que uma mudana na especificao do elemento usado pode afectar o elemento utilizador Exemplo tpico: classe-1 que depende de outra classe-2 porque usa operaes ou definies da classe-2
cliente
servidor
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
117
Relao entre elementos a diferentes nveis de abstraco, isto , entre um elemento mais abstracto (que especifica uma interface ou um "contracto", entre clientes e implementadores) e um elemento correspondente mais concreto (que implementa esse contracto) Difere da generalizao porque h apenas herana de interface e no herana de implementao
LinkedStack type Stack interface ISerializable
Caso de utilizao
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
XMLDocument
Colaborao
118
Dependncia e concretizao
Aparecem frequentemente combinados Cliente usa o servidor sem dele depender directamente (depende apenas da interface ou contracto que o servidor implementa)
cliente
contracto ou interface
servidor
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
119
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
120
Restries
Uma restrio especifica uma condio que tem de se verificar no estado do sistema (objectos e ligaes)
Uma restrio indicada por uma expresso ou texto entre chavetas ou por uma nota posicionada junto aos elementos a que diz respeito, ou a eles ligada por linhas a trao interrompido (sem setas, para no confundir com relao de dependncia)
Podem ser formalizadas em UML com a OCL - "Object Constraint Language"
Tambm podem ser formalizadas (como invariantes) numa linguagem de especificao formal como VDM++
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
121
Restries em classes
Pessoa nome dataNascimento localNascimento dataFalecimento {chave candidata: (nome, dataNascimento, localNascimento)} {dataFalecimento > dataNascimento}
Factura
nmero data
122
Restries em associaes
Factura {ordered} 1 * LinhaFactura uma factura constituda por um conjunto ordenado de 0 ou mais linhas
Pessoa
* 1
* * Comit
Pessoa Conta {xor} Empresa empregado Pessoa * chefe 0..1 * subordinado empregador 1 Pessoa.empregador = Pessoa.chefe.empregador
Empresa
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
123
Elementos derivados
Elemento derivado (atributo, associao ou classe): elemento calculado em funo doutros elementos do modelo Notao: barra / antes do nome do elemento derivado Um elemento derivado tem normalmente associada uma restrio que o relaciona com os outros elementos
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
124
/ TotalMensal ms valor
125
* Pr-condies e ps-condies
Pr-condio: uma condio nos argumentos e estado inicial do objecto, a verificar na chamada (incio) da operao
Ps-condio: uma condio nos argumentos, estado inicial do objecto, estado final do objecto e valor retornado pela operao, a verificar no retorno (fim) da operao Podem ser expressas em UML atravs da OCL (Object Constraint Language) Tambm podem ser expressas numa linguagem de especificao formal, como VDM++
VDM++ tem a vantagem de permitir tambm implementar as operaes e executar as pr-condies e ps-condies
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
126
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
127
T k: Integer
parmetros formais
generalizao, porque no se podem acrescentar propriedades!
ou
Farray<Point,3>
128
Interfaces
Uma interface especifica um conjunto de operaes (com sintaxe e semntica) externamente visveis de uma classe de (ou componente, subsistema, etc.)
semelhante a classe abstracta s com operaes abstractas e sem atributos nem associaes (em C++ mesmo isso!) separao mais explcita entre interface e (classes de) implementao interfaces so mais importantes em linguagens como Java, C# e VB.NET que tm herana simples de implementao e herana mltipla de interface
Vantagem em separar interface de implementao: os clientes de uma classe podem ficar a depender apenas da interface em vez da classe de implementao
Notao: classe com esteretipo interface (ligada por relao de concretizao classe de implementao) ou crculo (ligado por linha simples classe de implementao)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
129
ClientClass
InterfaceClass
interface InterfaceClass
ou
operations
relao de concretizao
ImplementationClass
operations
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
130
* Tipos
Um tipo usado para especificar um domnio de objectos em conjunto com as operaes aplicveis a esses objectos, sem especificar a implementao fsica desses objectos
no pode incluir mtodos (implementao de operaes) pode ter atributos e associaes (abstractos!), mas apenas para especificar o comportamento das operaes, sem compromisso de implementao notao: classe com esteretipo type semelhante a tipo abstracto de dados
Uma classe de implementao (classe normal) define a estrutura fsica de dados (para atributos e associaes) e mtodos de um objecto tal como implementado numa linguagem tradicional
notao: classe normal ou classe com esteretipo implementationClass diz-se que uma classe de implementao concretiza ("realizes") um tipo se proporciona todas as operaes definidos no tipo, com o mesmo comportamento especificado no tipo
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
131
* Tipos: exemplo
type FinitePriorityQueue isFull():Boolean
relao de concretizao
maxSize:Integer
T HeapFinitePriorityQueue maxSize:Integer
- elems [0..maxSize]: T - size: Integer = 0 + insert(value: T, priority: Integer) + deleteMax():T + isEmpty(): Boolean + isFull(): Boolean - HeapifyUp - HeapifyDown bind (Paciente, 100)
HeapFilaPacientes
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
132
* Meta-classes
Uma meta-classe uma classe cujas instncias so classes Notao: classe com esteretipo metaclass Usadas geralmente em meta-modelos Relao de instanciao (entre classe e meta-classe) pode ser indicada por dependncia com esteretipo instanceOf
metaclass
SYSCLASSES
name instanceOf
Class-1
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
133
* Utilitrios
Pode ser implementado por classe em que todos os atributos e operaes so estticos
Notao: classe com esteretipo utility
utility MathPack pi: Real sin(ang: Real): Real cos(ang: Real): Real
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
134
business actor
actor em relao ao negcio (cliente ou outra entidade ou sistema que interage com o negcio); actor externo
business worker
perfil de trabalhador do negcio, interno (no interage com actores do negcio) ou de fronteira (interage com actores do negcio); actor interno
objecto passivo manipulado pelos trabalhadores e actores nas actividades dos processos de negcio
business entity
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
135
objecto de controlo (controla sequncia de funcionamento, transaces, etc.; estabelece ligao entre objectos de fronteira e entidades)
control
136
* * Scio
nmero nome morada telefone data de inscrio validade da inscrio estado : (activo,inactivo)
Autor
nome nacionalidade
1 * * Requisio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
137
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
138
Exerccios
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
139
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
140
Um diagrama de objectos mostra instncias de classes (objectos) e de associaes (ligaes entre objectos) Utilizados para ilustrar cenrios / configuraes particulares Base para diagramas de colaborao
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
141
Objectos
: Aluno
ou
Joo:
nome do objecto
separador
nome da classe
objecto annimo
classe no especificada
objecto
Joo: Aluno
nome = Joo Silva data de nascimento = 18/3/1973 peso = 70 kg
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
142
Objectos compostos
Um objecto composto uma instncia de uma classe que tem classes associadas por relaes de composio
componente 1: Classe 2
componente 2: Classe 2
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
143
Ligaes
Assim como um objecto uma instncia duma classe, uma ligao uma instncia duma associao
A multiplicidade no aparece
Adornos de agregao, composio e navegao podem aparecer
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
144
Instanciao
Relao de instanciao entre objecto e classe pode ser indicada por dependncia com esteretipo instanceOf
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
145
Board : Organization Unit Financial Department : Organization Unit Production : Organization Unit SalesDepartment : Organization Unit
Web sales : Organization Unit Telesales Department : Organization Unit Product Development : Organization Unit Purchase Department : Organization Unit System Department : Organization Unit Marketing Department : Organization Unit
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
146
Pessoa -nome
Joo : Homem
Maria : Mulher
Pedro : Homem
Manuela : Mulher
Carlos & Leonor : Casal -descendente Filipe : Homem UML Unified Modeling Language
147
-nome 1
Caixa de Texto
Imagem
Ok: Boto
Cancelar: Boto
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
148
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
149
Pacotes
Client Client
Sensors::Vision
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
150
Diagramas de pacotes
Na realidade, no existem propriamente diagramas de pacotes em UML; em vez disso, pacotes e relaes entre pacotes aparecem noutros diagramas, de acordo com o tipo de pacote
Pacotes de classes (pacotes lgicos) - em diagramas de classes Pacotes de componentes em diagramas de componentes Pacotes de ns em diagramas de distribuio Pacotes de casos de utilizao em diagramas de casos de utilizao
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
151
Pacotes lgicos
Um pacote lgico (ou mdulo lgico) um agrupamento lgico de classes e relaes entre essas classes
diviso de um sistema em pacotes lgicos uma diviso de responsabilidades
Corresponde ao conceito de package em Java ou de namespace em C++ e C# No confundir com empacotamento fsico do software em ficheiros de cdigo fonte, executveis, dll's, etc. (designados componentes em UML) Um pacote lgico pode atravessar vrios ficheiros Diagramas de pacotes lgicos utilizadas para modelar a arquitectura lgica de um sistema de software (organizao em mdulos lgicos e especificao de interfaces e dependncias entre mdulos)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
152
Contedo de um pacote
Uma vez que representa um agrupamento, um pacote em geral dono de diversos elementos: classes, interfaces, componentes, ns, colaboraes, casos de uso, diagramas, e at outros pacotes Esses elementos podem ser indicados no interior do pacote, na forma de uma lista de nomes ou diagrama
Client + OrderForm + TrackingForm - Order Client + OrderForm - Order + TrackingForm
153
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
154
Dependncia simples: uma alterao do pacote de destino afecta o pacote de origem (dependente) (informao til para controlo de alteraes) Dependncia com esteretipo access: o pacote de origem (dependente) acede a elementos exportados pelo pacote de destino (precisa de :: nos nomes)
Dependncia com esteretipo import: o pacote de origem (dependente) importa os elementos exportados pelo pacote de destino (no precisa de :: nos nomes)
Client + OrderForm + TrackingForm - Order GUI + Window + Form # EventHandler
155
import
UML Unified Modeling Language
Generalizao de pacotes
herda sem alterao (default) substitui (overrides) o elemento Form de GUI adicionado herda os elementos pblicos e protegidos de GUI
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
MacGUI
156
Esteretipos em pacotes
system - pacote que representa o sistema completo que est a ser modelado (incluindo todos os modelos e elementos dos modelos) subsystem - pacote que representa uma parte independente de sistema completo que est a ser modelado; corresponde normalmente a um corte "vertical" facade (fachada) - pacote que constitui uma vista sobre outro pacote (no acrescenta funcionalidades, apenas apresenta de forma diferente)
framework (infra-estrutura aplicacional) - pacote que representa um conjunto de classes abstractas e concretas concebido para ser estendido, implementando a funcionalidade tpica de um determinado domnio de aplicao
stub - pacote que serve como proxy para o contedo pblico de outro pacote layer - pacote que representa uma camada horizontal de um sistema
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
157
158
Business Logic
Database
159
<<subsystem>>
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
160
<<layer>>
Base de Dados
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
161
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
162
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
163
Objectivo
Um diagrama de actividades decompe uma actividade em sub-actividades (actividades de mais baixo nvel), podendo chegar a aces atmicas, com fluxo de controlo sequencial ou concorrente entre sub-actividades
Opcionalmente, podem-se definir as unidades organizacionais, entidades ou objectos responsveis pela execuo de aces ou actividades Opcionalmente, podem-se indicar fluxos de objectos - objectos que so entrada ou sada de sub-actividades Pode-se usar toda a notao dos diagramas de estados
164
Tipos de estados
Estado
Estado de aco: estado de execuo de uma aco, cuja concluso determina a sada do estado
Aco: operao atmica, instantnea, que no pode ser interrompida Transies de sada no tm eventos, mas podem ter condies e aces
aco
Estado de (sub)actividade: estado de execuo de uma (sub)actividade, cuja concluso determina a sada do estado
(Sub)Actividade: operao no atmica, possivelmente detalhada noutro diagrama (com cone), potencialmente demorada, que pode ser interrompida Transies de sada no tm eventos, mas podem ter condies e aces
activ.
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
165
Pr Caf no Filtro
Pr gua no Reservatrio
Pr Chvenas
Pr Filtro na Maquina
Ligar Mquina
envio de sinal
/send ligar cafeteira estado de espera (cantos arredondados) Esperar que aquea luz desliga-se transio disparada por recepo de sinal Deitar caf subactividade (lados arredondados) Beber
166
Ligar Mquina Transio com aco de envio de sinal ligar cafeteira cafeteira opcional
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
167
Um diagrama de actividades pode ser dividido em pistas de responsabilidade (swimlanes), separadas por linhas contnuas Cada pista encabeada pelo nome da unidade organizacional, entidade ou objecto responsvel pelas aces e actividades a localizadas Cada aco ou actividade localizada numa nica pista, mas uma transio pode atravessar vrias pistas til para modelar fluxos de trabalho relativos a processos de negcio
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
168
Fluxos de objectos
Um objecto pode ser entrada (para consulta) ou sada (para criao, modificao ou destruio) de uma aco
indica-se por uma seta a trao interrompido (seta de dependncia) entre a aco e o objecto, no sentido do fluxo
obj1:C1
consulta
aco 2
Quando uma aco tem como sada um objecto que entrada para a aco seguinte, desnecessrio indicar o fluxo de controlo (a transio), basta o fluxo de/para objectos (tipo DFD)
aco 1
obj1:C1
aco 2
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
169
e: Encomenda [pendente]
Despacha encomenda
Emite factura
e: Encomenda [despachada]
Paga factura
f: Factura [pendente]
Estado de objecto
f: Factura [paga]
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
170
Processos transformam objectos de entrada, produzem objectos de sada, usam recursos e pretendem atingir "goals"
Ver "Business Modeling with UML: Business Patterns at Work", de Hans-Erik Eriksson UML e Magnus Penker, Wiley & Sons, 2000 Unified Modeling Language
Ademar Aguiar, Gabriel David, Joo Pascoal Faria
171
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
172
Vem requisitar
[ desiste ]
Aguarda disponibilidade
disponvel
Vem levantar
Avisa o requisitante
Recolhe a publicao
: requisio [finalizada]
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
173
Exerccios
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
174
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
175
Objectivo
Um diagrama de sequncia mostra uma interaco, isto , uma sequncia de mensagens trocadas entre vrios objectos num determinado contexto (caso de utilizao, operao, etc.) Enfatiza a comunicao e passagem de controlo entre objectos ao longo do tempo til para descrever uma sequncia particular de funcionamento, mas no muitas sequncias alternativas e ciclos nem aces realizadas por um objecto que no envolvem comunicao com outros objectos
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
176
Cada objecto participante representado por uma caixa em cima duma linha vertical a trao interrompido (linha de vida) Podem aparecer actores (objectos externos ao sistema), normalmente a iniciar interaces O tempo cresce de cima para baixo
objecto1:Classe1
mensagem
objecto2:
:Classe3
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
177
Mensagens
Uma mensagem uma comunicao entre objectos (emissor e receptor) que veicula informao na expectativa de provocar uma resposta (aco ou actividade)
Uma aco de um objecto capaz de provocar uma resposta noutro objecto pode ser modelada como uma mensagem do primeiro para o segundo objecto
Uma mensagem representada por uma seta horizontal, do emissor para o receptor, com o nome e possveis argumentos Tipos de mensagens
sncrona - o emissor fica parado espera de resposta
corresponde tipicamente a chamada de operao/procedimento no receptor desnecessrio indicar quando se usam barras de activao (ver adiante)
assncrona - o emissor no fica parado espera de resposta simples ou indiferenciada - no se decide se sncrona, de retorno ou assncrona
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
usadas normalmente na modelao de interaces na fronteira do sistema (entre actores e o sistema representado por um ou mais objectos)
178
Criao de objecto representada por mensagem dirigida prpria caixa que representa o objecto (em vez de ser dirigida linha de vida)
Mensagem de criao pode ter esteretipo create
ob1:C1
ob1:C1
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
179
O valor de retorno de uma mensagem sncrona pode ser indicado na chamada, com atribuio :=, ou na mensagem de retorno
Exemplo: ret := msg(args) Nome ret ser usado em mensagens e condies a seguir Tambm se pode escrever ret na mensagem de retorno
Uma mensagem condicional indicada por uma condio de guarda entre parntesis rectos [ ]
Exemplo: [x<0] invert(x,color) A mensagem s enviada se a condio se verificar Condies permitem mostrar vrias sequncias alternativas num nico diagrama
Uma mensagem iterada indicada com asterisco *, seguido ou no de uma frmula de iterao
Exemplo: *[i:=1..n] update(i)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
180
Barra de activao
Uma barra de activao mostra o perodo de tempo durante o qual um objecto est a executar uma aco, quer directamente quer indirectamente atravs de um procedimento chamado
inclui situao em que est espera de retorno de uma chamada sncrona no inclui situao em que um processo est adormecido espera de receber uma mensagem assncrona que o acorde
Em termos de processos, significa que o objecto tem um processo ou thread activo associado A sua indicao opcional Retorno de chamada implcito no fim da barra de activao
181
a b
:Pedido
:Linha de Pedido
:Item de Stock
Quantidade pedida
* tratar() e:=existe?(q)
Para cada linha do pedido
e2:Encomenda
e1:Encomenda
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
criao de objecto
183
criar
t: Transaco
criar criar
Adormecida espera de sinal de sub-transaco
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
184
: Multibanco
:SIBS
solicita transaco
bifurcaes sincronizadas
sucesso
saldo insuficiente
185
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
186
: SIB
Pede publicao emprestada Identifica publicao Mostra restantes dados da publicao Pede carto de scio Mostra carto de scio Identifica scio Mostra restantes dados do scio Confirma dados Imprime requisio Entrega requisio para assinar Devolve requisio assinada Empresta publicao Informa prazo para devoluo
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
187
Exerccios
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
188
Outros exerccios
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
189
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
190
Introduo
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
191
Objectivo
Um diagrama de estados especifica uma mquina de estados, com estados (duradoiros e em nmero finito) e transies entre estados (instantneas) causadas por eventos (instantneos) Pode tambm especificar as aces (instantneas) e actividades (duradoiras) realizadas em resposta a eventos ou durante a permanncia em estados, respectivamente Usado normalmente para modelar o ciclo de vida dos objectos de uma classe (objecto visto como mquina de estados) Em geral, serve para modelar a dinmica de um sistema ou objecto cujo estado evolui por saltos (transies instantneas) em resposta a eventos, com um nmero finito de estados
(de sistema, objecto, etc.)
estado
evento
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
tempo
192
Um diagrama de estados til para modelar o comportamento e o ciclo de vida de um objecto ou sistema reactivo
Sistemas de interaco com o utilizador (com formulrios, botes, etc.) so tipicamente reactivos
Sistemas de tempo real (ex: semforo) podem ser vistos como sistemas reactivos que reagem a eventos temporais (timeout, ...) Sistemas reactivos geralmente tm memria - um estado interno que acumula o efeito dos estmulos recebidos no passado e afecta a resposta a estmulos futuros
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
193
Ciclo de vida de um objecto/sistema: as sequncias de estados por que pode passar durante a sua vida em resposta a eventos, em conjunto com as respostas a esses eventos, ou seja:
os estados possveis (exemplo - estado civil: solteiro, casado, ...) as transies de estado possveis (exemplo: pode passar de solteiro para casado, mas no o contrrio) os eventos que causam essas transies (exemplo: o casamento implica a passagem ao estado de casado) as aces do objecto em resposta a esses eventos (ex: despedida de solteiro)
Objecto como mquina de estados Objectos da mesma classe tm o mesmo ciclo de vida, pelo que basta construir um diagrama de estados por classe relevante
Interaces entre objectos aparecem pouco explcitas, como trocas de mensagens
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
194
Diagramas de estados focam o fluxo (passagem) de controlo de estado para estado num objecto, mostrando todas as sequncias possveis de funcionamento de um nico objecto
Bom para especificao Comunicao entre objectos do mesmo sistema aparece de forma pouco explcita, atravs de eventos gerados (como aces) na mquina de estados de um objecto que so testados (como eventos) na mquina de estados doutro objecto
Diagramas de interaco (sequncia ou colaborao) focam o fluxo (passagem) de controlo de objecto para objecto numa sequncia particular de funcionamento de um sistema
Comunicao entre objectos aparece de forma explcita Bom para ilustrao mas mau para especificao
Diagramas de actividades focam o fluxo de controlo de actividade para actividade numa actividade de mais alto nvel (operao, caso de utilizao, etc.) de um objecto ou sistema
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
195
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
196
Notao bsica
Estado 1 do / actividade entry / aco evento(parmetros) [condio] / aco Estado 2
exit / aco
evento / aco Sequncia de mudana de estado:
- Ocorre o evento associado transio e a condio de guarda verdadeira - interrompida a actividade associada ao estado de origem, se no tinha j terminado - executada a aco sada do estado de origem - executada a aco associada transio - executada a aco entrada do estado de destino - iniciada a actividade associada ao estado de destino
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
transio
197
Estados
Um estado uma condio ou situao na vida de um objecto, durante a qual o objecto satisfaz alguma condio, realiza alguma actividade ou espera por algum evento
Exemplo (relativamente ao estado civil de uma pessoa): solteira, casada, ...
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
198
Eventos
Um evento uma ocorrncia significativa que tem uma localizao no tempo (instante de tempo do evento) e no espao No contexto de uma mquina de estados, um evento pode ter como resposta uma transio (mudana de estado) e/ou uma aco Os eventos so instantneos
O que interessa que se lhe possa atribuir um instante de tempo de ocorrncia
199
200
signal Mouse Up
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
201
Chamadas
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
202
Eventos temporais
Notao: when(instante-de-tempo)
Exemplo: when(11:59PM)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
203
Eventos de mudana
Um evento de mudana (change event) um evento que representa o facto de uma condio se tornar verdadeira
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
204
Transies
Uma transio uma relao entre dois estados indicando que um objecto no 1 estado realizar uma certa aco (opcional) e passar ao 2 estado quando um evento especificado ocorrer se uma condio especificada (opcional) for satisfeita Duas transies a sair do mesmo estado devem ter eventos diferentes ou condies mutuamente exclusivas, para que o diagrama de estados seja determinstico Se, num dado estado, ocorrer um evento que no corresponde a nenhuma transio, nenhuma transio disparada e o evento ignorado
205
Actividades
Uma actividade uma execuo contnua (ongoing execution) no atmica numa mquina de estados
Tem durao
Pode ser interrompida Pode ter fim (termina por si s) ou no (s termina se for interrompida)
associada a estados
Inicia-se ao entrar no estado Termina por si s ou interrompida na sada do estado (causada por um evento)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
206
Aces
Uma aco uma computao atmica executvel que resulta numa mudana de estado ou no retorno de um valor
A mudana de estado pode ser noutro objecto No tem durao (pelo menos no modelo) e no pode ser interrompida Ocorre em resposta a um evento Exemplo (num telefone): poisa auscultador / pra sinal de marcar Aces so associadas a transies (mais comum) ou estados
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
207
xeque-mate paralisado
Empate
xeque-mate
208
Exemplo: Semforo
N O S E
Norte/Sul pode seguir em frente after( 30 seg )[ tem carros na pista esquerda N/S ] Norte/Sul pode virar esquerda
N O S E
after( 30 seg )[ sem carros na pista esquerda E/O ] Este/Oeste pode virar esquerda Este/Oeste pode seguir em frente
N O E
O
S
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
209
boto dirteito em cima / apaga menu popup e lana aco associada ao item seleccionado
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
210
Fechado
acciona
porta fechada
211
Inactivo
levantado
no descanso
Sinal de marcar tempo mximo Tempo mximo do/toca sinal do/ toca apito
dgito(n) dgito(n) tempo mximo
Discando
Ligando
Sinal de ocupado
do/sinal ocupado lento
nmero ocupado
Sinal de interrompido
do/ sinal ocupado rpido
ramal ocupado
do/ busca ligao encaminhada do/ toca campanha resposta/ liga linha
Tocando
Ligado
mensagem dada
Desligado
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
212
Subestados sequenciais
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
213
Solteiro
Vivo
Divorciado
Casamento
Falecimento do cnjuge
Casado
Separao judicial
Separado judicialmente
Equivale a vrias transies, com origem em cada um dos subestados! Evita exploso combinatria de transies!
Falecimento
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
214
Marcha atrs
reduo
215
Subestados sequenciais
Vrios estados de um diagrama (e transies entre esses estados) podem ser agrupados num nico estado composto
Estados e transies agrupados no estado composto formam um diagrama de estados encaixado, podendo ter estado inicial e final
Tambm se chama a isto composio ou
Estar no estado composto estar no 1 subestado ou...ou no n-simo subestado
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
216
No entanto, tambm se podem definir transies que atravessam o estado composto, com origem ou destino em subestados
O estado inicial apenas um estado inicial por omisso
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
217
Um estado composto pode ter todas as propriedades dos estados simples, mas normalmente s tem o nome, que mesmo assim opcional
A actividade do estado composto detalhada pelos subestados e transies entre eles, isto , pelo diagrama de estados encaixado
Em alternativa, pode-se dar um nome actividade do estado composto (com do/...) , e detalha-se essa actividade separadamente (com o mesmo diagrama de estados encaixado)
As aces entrada e sada so representadas no 1 diagrama Uma actividade pode ser detalhada por um diagrama de estados ou actividade
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
218
Subestados concorrentes
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
219
Subestados concorrentes
Um estado (estado composto) pode ser dividido em duas ou mais regies concorrentes, separadas por linhas a trao interrompido, representando subestados concorrentes (que , por sua vez, tm normalmente subestados sequenciais) Subestados concorrentes correspondem a aspectos do objecto (grupos de atributos e ligaes ou sub-objectos) que evoluem de forma mais ou menos independente
Dependncias entre regies podem ser expressas atravs de condies de guarda (num componente testar o estado doutro)
Tambm se chama a isto composio e:
Estar no estado composto estar no 1 e ... e no n subestado concorrente
Notar que, a um nvel mais global, os objectos (e portanto os respectivos diagramas de estados) so concorrentes entre si
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
220
X
Subestados concorrentes de Preparao do despertador
Seleco do programa comuta(banda) sintoniza(frequncia) programa banda Seleco escolhida Seleco do escolhido da Banda Programa
Activao do alarme
Ao entrar, inicia os dois subdiagramas concorrentes
Alarme ligado
marca(hora)
Seleco da Hora hora escolhida
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
221
programa escolhido
Seleco da Hora
marca(hora)
hora escolhida
marca(hora)
hora escolhida hora escolhida comuta(banda) Seleco da Banda banda escolhida
sintoniza(frequncia)
Seleco do Programa programa escolhido
222
Separao - quando um objecto passa a fazer vrias actividades concorrentemente (ordem irrelevante)
transio para estado com subdiagramas concorrentes activa cada um deles
Fuso - quando as actividades concorrentes tm que terminar antes de passar ao estado seguinte
subdiagramas que no estejam na fuso so automaticamente terminados
Emisso (Multibanco) do/ liberta carto pronto Preparao do/ liberta dinheiro
recolhe dinheiro
223
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Conceitos avanados
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
224
Um estado pode ter um compartimento de variveis Estas variveis so atributos da classe dona do diagrama de estados, distinguidos porque so usadas ou afectadas por aces no diagrama de estados Todos os compartimentos (nome, variveis e actividade interna) so opcionais
compartimento de variveis
Typing Password
password: String = fails: Integer = 0 entry / set echo invisible exit / set echo normal do / echo typing help / display help
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
225
Transies complexas
Uma transio complexa uma transio com mltiplos estados fonte (normalmente de subdiagramas concorrentes) ou mltiplos estados de destino (normalmente de subdiagramas concorrentes) Representa uma separao e/ou fuso de controlo em/de fios de controlo concorrentes Aplicvel mesmo sem subdiagramas concorrentes Desenha-se com uma barra forte (barra de sincronizao):
Estado fonte 1 Estado destino 1
ev1
... evn Estado destino m
...
Estado fonte n
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
226
Eventos diferidos
Uma aco possvel em resposta a um evento defer, que significa guardar o evento at chegar a um estado capaz de o consumir aplicvel num par evento/aco interno a um estado Exemplo (mquina de fax):
Repouso
enviar fax
chegada de fax
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
227
Um evento composto pode ser definido atravs de um diagrama de estados (mquina de estados) que funciona como um detector de eventos
Detector sequencial: a deteco do evento composto corresponde chegada a um estado final com o nome do evento Detector cclico: o evento composto sinalizado explicitamente, podendo ser lanado vrios vezes
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
228
Inactivo
Recolhe dinheiro
moeda(montante) / adiciona ao balano
[item vazio]
escolhe(item)
[troco<0]
do/ entrega(item)
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
229
tirado
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
230
Estado histrico (dentro de um estado composto) referese ao ltimo subestado em que se encontrava o estado composto til para reentrar num estado composto no subestado em que se encontrava anteriormente
B1
resume
231
Aplicveis quando se escondem os detalhes de um estado composto, mas h transies que o atravessam
p W E u B r F t s
C
q D
abstraco p
W
A B
s q
C D
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
232
Exemplos e exerccios
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
233
desligar
dormir
vol
sintonia
18:35
89.5
FM
234
- Diagrama principal
Desligado Rdio-despertador Interruptor radio alarme Despertador Funcionar off do/ radio activo radio Boto de volume ajusta(nvel)/alterar nvel Activo Cortado [nvel=0] ajusta(nvel)/ alterar nvel Altifalante [em Estao e Activo e (Funcionar ou Despertar ou Adormecer)] Desligado Tocar [em (Rudo ou Cortado) ou (Desligado ou Armado ou Latente)]
235
Boto de sintonia sintoniza(freq) Rudo dessintoniza Display Hora actual do/ mostra hora actual boto alarme carregado Hora despertar boto alarme do/ altera hora despertar livre Estao
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
Pe minutos Mostra do/ mostra boto minutos do / incrementa livre minutos despertar hora despertar mod 60 boto horas boto horas carregado livre Pe horas do/ incrementa horas despertar mod 24
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
236
boto minutos carregado Acerta minutos do/ incrementa boto minutos minutos mod 60 livre
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
237
- Subdiagrama Despertador
Despertador minuto [hora_actual = hora_despertar] Armado Despertar do/ rdio activo minuto [hora actual - hora despertar>60] desligar /desliga 60 minutos / desliga Adormecer dormir do/ rdio activo
desligar/desliga
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
238
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
239
aquisio
Disponvel
devoluo
emprstimo
mediante requisio
Emprestada
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
240
Estados de um Scio
evento ocorre quando a condio se torna verdadeira
inscrio
Activo
Inactivo
renovao
desistncia
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
241
Espera disponibilidade
publicao disponvel / avisa requisitante
Espera levantamento
esgotado prazo devoluo / avisa requisitante
desistncia
Requisio Anulada
Prev j vrios exemplares por publicao e possibilidade de requisio ficar em lista de espera!
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
242
Exerccios
UML Unified Modeling Language Ademar Aguiar, Gabriel David, Joo Pascoal Faria
243