Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contedo
Introduo a UML Conceitos Gerais Apresentao dos 9 diagramas de UML
Criadores da UML
James Rumbaugh - Object Modeling Technique (OMT) Grady Booch - Booch Method Ivar Jacobson - Objectory (OOSE) Process
Tradicional e Moderna
Relacionamentos Objetos ORDBMS Java Beans Componentes Classes Frameworks Sistemas Real Time Sistemas de grande porte
CORBA
Use Cases
Interfaces
Usos de UML
A UML uma linguagem de modelagem para:
Elementos Essenciais
Elementos Estruturais
Elementos Comportamentais
Elementos de Agrupamento
Elementos de Anotao
Elementos Estruturais
So as partes estticas de um modelo, representando elementos que so ou conceituais ou fsicos. Exemplos: Classe Interface Use Cases
Componente N
Elementos Comportamentais
So as partes dinmicas dos modelos da UML.
Exemplos: Interao - especifica um conjunto de mensagens trocadas entre objetos Mquina de Estado - especifica seqncias de estados de um objeto
Elementos de Agrupamento
So partes organizacionais dos modelos da UML.
Exemplo:
Elementos de Anotao
So partes explicativas dos modelos da UML. So comentrios que voc aplica para descrever, iluminar e remarcar elementos no modelo. Exemplo:
Nota - smbolo contendo restries ou comentrios que so melhor expressadas em textos
Diagramas
So representaes grficas de um conjunto de elementos. So desenhados para visualizar um sistema de diferentes perspectivas.
<<estende>>
<<inclui>>
Matricular aluno
Verificar dependncias
Secretria
Diagrama de Classe
Os diagramas de classes so os principais diagramas estruturais da UML Diagramas de classe mostram classes, interfaces e seus relacionamentos As classes especificam a estrutura e o comportamento dos objetos, que so instncias de classes
Diagrama de Classe
Pedido -codigo: Integer -dataRecebido -total: Currency +confirmar() +cancelar() -calcularTotal():Currency gerarNovoCodigo: String Cliente 0..*
faz
-nome: String -endereco: String -dataPrimeiraCompra: Date -dataUltimaCompra: Date -totalComprado: Currency #creditoPermitido: Currency #nivelCredibilidade()
itens
Item de Pedido -quantidade: Integer -preco: Currency -emEstoque: Boolean Cliente pessoa-jurdica nomeContato: String telefones[1..10]: String CGC: String FAX[1..3]: String Cliente pessoa-fsica nome: String CPF: String numCartaoCredito colocarListaNegra()
* Produto
representante de vendas
Empregado
IPessoa
Diagrama de Objetos
Mostram objetos e seus relacionamentos Representam instncias estticas de elementos dos diagramas de classes Os diagramas de objetos so teis para a modelagem de estruturas de dados complexas
Diagrama de Objetos
Professor ministra -matrcula: String -nome: String
[1..3]
Aluno
* -matrcula: String
[0..10]
-nome: String
-perodo: Integer
c1: Curso : Curso codCurso: "IF291" descrio: "MPS" codTurma: I7 : Curso codCurso: "IF185" descrio: "AER" codTurma: I6 c2: Curso
c3: Curso
: Aluno
: Aluno
: Aluno : Aluno : Aluno :aluno Bill :aluno matricula: "562746134" nome: "John Major" : Aluno matricula: "219846534" nome: "Nelson Mandella" Lewinsky
Diagrama de Seqncia
Mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles
Diagrama de Seqncia
Janela de entrada de pedido p: Pedido : ItemPedido :ItemEstoque preparar()
[emEstoque]
remover()
estoqueBaixo := verificEstoqueBaixo()
[estoqueBaixo] <<criar>>
:ItemRenovEstoque
[emEstoque] <<criar>>
:ItemEntrega
Diagrama de Colaborao
Mostra um conjunto de objetos, seus relacionamentos e as mensagens que enfatizam a organizao dos objetos que trocam mensagens
Diagrama de Colaborao
Janela de entrada de pedido 1: preparar()
p: Pedido
:ItemEntrega
:ItemRenovEstoque
Diagrama de Estados
Mostra uma mquina contendo estados, transies, eventos e atividades Estes diagramas so usados para modelar o comportamento de objetos (com comportamento complexo) Nestes diagramas so modelados os estados em que um objeto pode estar e os eventos que fazem o objeto passar de um estado para outro
Diagrama de Estados
cartoInserido
Ocioso
cancelar
Ativo Validando
H
fazerManuteno
[continuar]
Manuteno
Selecionando
Processando
[no continuar]
Imprimindo
Diagrama de Atividades
Destaca a lgica de realizao de uma tarefa Mostra o fluxo entre atividades (aes noatmicas) semelhante aos antigos fluxogramas usado tambm para modelar alternativas de execuo e atividades concorrentes
Diagrama de Atividades
Pessoa
[sem caf]
[sem Coca]
[achou Coca]
Pegar xcara
Ligar mquina
Filtrar caf
Beber
Diagrama de Componentes
Mostra os componentes de hardware e software de uma aplicao e os relacionamentos entre eles usado para modelar o aspecto fsico de um sistema Exemplos de componentes so documentos, executveis e tabelas de bancos de dados
Diagrama de Componentes
<<link>>
Cadastro.exe Usurios
FormCadastro.html
Banco
<<link>>
Autenticacao.exe
Senhas
Principal.html
FormEntrada.html
Diagrama de Implantao
usado para modelar a arquitetura de distribuio em que o sistema ser executado composto por ns e relacionamentos de comunicao Um n pode ser um computador, uma rede, um disco rgido, um sensor, etc.
Diagramas de Implantao
PC - G309 Nestscape Communicator 5.0 Principal.html
Cadastro.exe FormEntrada.html
servidorBancoDeDados
SGBD
Use Case
Um use case uma unidade funcional que descreve o comportamento de um elemento da aplicao contm sequncias de aes, interagindo com os atores que usam a aplicao inclui variantes, rotinas de erro, etc. que o sistema executa para produzir um resultado observvel para um ator
A coleo dos use cases dever especificar todas as formas existentes de uso do sistema
Matricular aluno
Solicitar histrico
Verificar pr-requisitos
Atores
O sistema ser descrito atravs de vrios use cases que so executados por um nmero de atores Atores constituem as entidades do ambiente do sistema So pessoas ou outros subsistemas que interagem com o sistema em desenvolvimento
Atores - Notao
<<Ator>>
Coordenador
Secretria
Professora
Estudante
Atores: Especializao
Cliente
ClienteEspecial
<<estende>>
<<inclui>>
Matricular aluno
Verificar dependncias
Secretria
Gerar Relatrio
Retornar Item Cliente
Mudar Item
Operador
Nem sempre bvio decidir se uma funcionalidade corresponde a um novo use cases. As vezes trata-se de uma variao de um mesmo use case Se as diferenas forem pequenas elas podem ser descritas atravs de variantes de um mesmo use case Se as diferenas so grandes elas devem ser descritas como use cases separados
Expresso de Variantes
Use Case Retornar item Fluxo principal de eventos: Quando o cliente depositar os seus itens, ele/ela ir pressionar o boto recibo para obter o recibo. O recibo impresso ir listar os itens depositados, seus totais e o valor a ser pago ao cliente
Expresso de Variantes
Use Case Retornar item Fluxo excepcional de eventos: Quando o cliente retorna um item ele medido pelo sistema. A medio usada para determinar que tipo de lata, garrafa ou gradeado foi depositado. Se aceito o total do cliente ser incrementado. Se no for aceito, apresentar mensagem NO VALIDA
<<inclui>>
-um
Validar usurio
-um
Teste de retina
Use Case Fazer Pedido Fluxo principal de eventos: inclui (Validar usurio). Receber do usurio os itens do pedido. (set prioridade). Submeter o pedido para processamento
Diagramas de Classes
Sobre Classes
Classes so o elemento mais importante de qualquer sistema orientado a objetos Uma classe uma descrio de um conjunto de objetos com os mesmos atributos, relacionamentos, operaes e semntica Classes so usadas para capturar o vocabulrio de um sistema Classes so abstraes de elementos do domnio do problema, como Cliente, Banco, Conta
Nomes
Toda classe deve ter um nome que a distinga das outras classes Um nome pode ser simples (apenas o nome), ou pode ser precedido pelo nome do pacote em que a classe est contida
Conta
Banco
Cliente
Excees::ClienteNoCadastrado
Notao bsica
Atributos (opcional) Nome (obrigatrio)
Atributos
Um atributo representa alguma propriedade do que est sendo modelado, que compartilhada por todos os objetos da classe Os atributos descrevem os dados contidos nas instncias de uma classe Em um momento dado, um objeto de uma classe conter valores para todos os atributos descritos na sua classe
Atributos - Notao
Atributos podem ter seus tipos (ou classes) especificados e terem valores padro definidos Parede
altura : real largura : real espessura : real viga : boolean = false
Operaes
Uma operao uma abstrao de alguma coisa que se pode fazer com um objeto e que compartilhada por todos os objetos da classe Um classe pode ter qualquer nmero de operaes, inclusive nenhuma Operaes so o meio de alterar os valores dos atributos
Operaes - Notao
Como para os atributos, voc pode especificar uma operao apenas com seu nome
Retngulo mover() aumentar() diminuir()
Voc pode tambm especificar a assinatura da operao: seus parmetros, o tipo desses parmetros e o tipo de retorno
Visibilidade
Voc pode usar marcaes de acesso para especificar o tipo de acesso permitido aos atributos e operaes Classificador pode ser classes, interfaces, componentes, ns, use cases, subsistemas + pblico: todos os classificadores podem usar # protegido: qualquer descendente do classificador poder usar - privado: somente o prprio classificador poder usar
Relacionamentos
Poucas classes vivem sozinhas Tipos de relacionamentos especialmente importantes na modelagem orientada a objetos:
Associaes Agregao Composio Dependncias Generalizaes Realizao
Relacionamentos
Os relacionamentos ligam as classes/objetos entre si criando relaes lgicas entre estas entidades. Os relacionamentos podem ser dos seguintes tipos:
Associao - especifica que objetos de um elemento (classe) esto conectados a objetos de outros elementos
Relacionamentos
Agregao - relacionamento fraco do tipo parte de. um tipo especial de associao Composio - relacionamento forte do tipo parte de. A composio entre um elemento (o todo) e outros elementos (as partes) indica que as partes s existem em funo do todo.
Relacionamentos
Dependncia - relacionamento de uso, no qual uma mudana na especificao de um elemento pode alterar a especificao do elemento dependente Generalizao (herana) - relacionamento entre descries mais gerais e descries mais especficas, com mais detalhes sobre alguns dos elementos gerais Realizao - relacionamento entre uma interface e o elemento que a implementa
Relacionamentos - Notao
Associao
Sem/com navegao
Dependncia
Agregao
Generalizao
Composio
Realizao
Dependncia
Dependncias so relaes de uso Uma dependncia indica que mudanas em um elemento (o servidor) podem afetar outro elemento (o cliente) Uma dependncia entre classes indica que os objetos de uma classe usam servios dos objetos de outra classe
Cliente
Servidor
Generalizao
Relacionamento entre um elemento mais geral (chamado de superclasse ou pai) e um mais especfico (chamado de subclasse ou filho)
Forma origem mover() exibir()
Quadrado
Herana Mltipla
Veculo Terrestre
Veculo Aqutico
Veculo Anfbio
Associao
A associao um relacionamento estrutural que especifica que objetos de um elemento esto conectados a objetos de outro elemento
Companhia
emprega
Funcionrio
Multiplicidade
* Classe
0..1 Classe
m.. n
Classe
Associao Unria
Associao Binria
Quando h duas classes envolvidas na associao de forma direta de uma para a outra
Cliente 1 faz 0..* Pedido
Associao: Navegabilidade
Em geral a navegao entre as classes de uma associao bi-direcional Porm possvel limit-la a apenas uma direo
Usurio
Senha
Associao: papis
Papis: um dos lados da associao Nomes de papis so necessrios para associao entre dois objetos da mesma classe
Empregado
Agregao
Uma forma especial de associao entre o todo e suas partes, no qual o todo composto de partes No impe que a vida das Partes esteja relacionado com a vida do Todo
Computador
Monitor
Teclado
Mouse
CaixaSistema
Composio
Uma forma mais forte de agregao H uma coincidncia da vida das partes Uma vez criada a parte ela ir viver e morrer com ele O Todo responsvel pelo gerenciamento da criao e destruio das partes
Composio
Interfaces
Uma interface um conjunto de operaes usado para especificar um servio de uma classe ou componente Diferentemente das classes, as interfaces no especificam nenhuma estrutura Interfaces no podem conter atributos
Interfaces
Com as interfaces, possvel se concentrar apenas nos servios oferecidos por classes ou componentes O uso de interfaces uma maneira elegante e poderosa de isolar a especificao da implementao Uma interface especifica o contrato para uma classe ou componente, sem definir como ele ser implementado
Interfaces e Realizao
Realizao uma relao pela qual um elemento especifica o contrato que outro elemento deve implementar A realizao um relacionamento entre uma especificao e sua implementao um relacionamento semntico entre classificadores no qual um classificador especifica um contrato que outro classificador garante cumprir
Realizao - Notao
<<interface>> Empregado Empregado_Impl verificarFicha() calcularSalrio()
Empregado_Impl
Empregado
Diagramas de Objetos
Diagramas de objetos
Os diagramas de objetos mostram uma fotografia de um sistema OO em execuo So mostrados os objetos, com os valores de seus atributos e as ligaes (links) entre eles Os diagramas de objetos so teis para a modelagem de estruturas de dados complexas, por exemplo
Diagramas de objetos
comum haver centenas ou milhares de objetos em um sistema em execuo, a maioria deles annimos Um diagrama de objetos mostra apenas uma parte dos objetos no sistema Um diagrama de objetos no mostra a evoluo do sistema com o tempo
Diagramas de objetos
Diagramas de objetos so estticos Para mostrar o comportamento de um objeto, use diagramas de colaborao, diagramas de sequncia, ou diagramas de estados comum colocar um diagrama de classes junto com um diagrama de objetos, para facilitar a identificao dos objetos
Objetos Simples
Bill Clinton
: Curso
codCurso: "IF291" descrio: "MPS" codTurma: I7
Jaelson: Professor
: Aluno
Monica: Aluno
Fulano :
MultiObjects
Multiobjects so conjuntos de objetos, com um nmero indeterminado de elementos So usados, por exemplo, em diagramas de colaborao para modelar uma mensagem enviada para vrios objetos ao mesmo tempo
MultiObjects - Exemplos
p2: Pr ofe s s or
c3: Curs o
: Aluno
: Aluno
MultiObjects
Agente de Reservas
2: reservar(nomeCliente) : Cadeira
Diagramas de Objetos
Professor ministra -matrcula: String -nome: String
[1..3]
Aluno
* -matrcula: String
[0..10]
-nome: String
-perodo: Integer
c1: Curso : Curso codCurso: "IF291" descrio: "MPS" codTurma: I7 : Curso codCurso: "IF185" descrio: "AER" codTurma: I6 c2: Curso
c3: Curso
: Aluno
: Aluno
: Aluno : Aluno : Aluno :aluno Bill :aluno matricula: "562746134" nome: "John Major" : Aluno matricula: "219846534" nome: "Nelson Mandella" Lewinsky
Sequenciamento
Quando um objeto envia uma mensagem para outro objeto, o objeto que recebe a mensagem pode enviar outras mensagens e assim por diante, formando uma sequncia de mensagens O sequenciamento pode ser procedural, com aninhamento (mensagens sncronas) ou plano, sem aninhamento (mensagens assncronas)
Diagramas de Seqncia
Diagramas de Seqncia enfatizam a ordenao das mensagens trocadas entre os objetos Um cenrio uma seqncia especfica de aes que ilustra um comportamento Diagramas de Seqncia podem modelar apenas um cenrio ou um conjunto de cenrios Diagramas de Seqncia podem mostrar decises simples e iteraes
Mensagens
Definio formal: uma mensagem a especificao de uma comunicao entre objetos, onde so passadas informaes, com a esperana de que ocorra alguma atividade Na maioria das vezes, uma mensagem resulta na execuo de uma operao
Mensagens
Tipos principais de mensagens: Chamada (Call) Retorno (Return) Envio (Send) Criao (Create) Destruio (Destroy)
Exemplo
Br ow s er Es tudante Subm ete r for m ulr io de pe dido pr e enchido Se rvidor We b
Pr oce s s ar dados
Exe cutar Enviar dados proce s s ados Cadastr ar pe dido Cadas tr o OK Ge r ar pgina de confir m ao
Diagramas de Colaborao
Diagramas de Colaborao enfatizam a organizao dos objetos em uma interao Praticamente tudo que pode ser mostrado em um diagrama de seqncia pode tambm ser mostrado em um diagrama de colaborao Diagramas de Colaborao podem ser transformados em diagramas de seqncia e vice-versa
Exemplo
Janela de entrada de pedido 1: preparar()
p: Pedido
:ItemEntrega
:ItemRenovEstoque
Diagramas de Estados
Mquina de Vendas
entrada de moedas(quant.)
Ociosa
cancelar / devolver moedas
Recebendo R$
selecionar (item)
[ item vazio ]
[ troco < 0 ]
Oferendo servios
[ troco = 0 ] [ troco > 0 ]
Despachando Item
Entregando Troco
Estados
Estado Inicial Estado Final
Partes de um Estado
Nome Aes de entrada (Entry) Aes da sada (Exit) Atividades (do:)
Partes de um estado
Transio
um relacionamento entre dois estados indicando 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 Uma transio de estado uma mudana de estado causada por um evento
Partes da transio
Ocioso
ao guarda
contato
Disparando
Refinamento
Add student[ Count < 10 ] Add student / Set count = 0 Open
Refinamento: SubEstados
Registration Add student[ Count < 10 ] Add student / Set count = 0
Open
[ Count = 10 ] ^Course Report.Create report Cancel course Closed entry: Finalize course exit: ^CourseRoster.Create roster
Relgio
alarmeON alarmeOFF 12hs
InserirBateria
24hs
acabouBateria
Subestado 3 Subestado 4
evento 3
Subestado 2
evento 2
evento 4
Diagramas de Atividades
Diagramas de Atividades
Os Diagramas de Atividades mostram o fluxo entre atividades (aes no-atmicas) So um caso especial dos Diagramas de Estados, com a maioria das transies resultantes do trmino das atividades So semelhantes aos antigos fluxogramas So muito usados para modelar atividades concorrentes
Pessoa
[s em caf]
[s em Coca]
Procurar bebida
[achou caf]
[achou Coca]
Pegar xcara
Ligar mquina
Filtrar caf
Beber
Swimlanes (raias)
Swimlanes (raias) so usadas para definir quais so as classes (ou conjuntos de classes) responsveis pela realizao de cada atividade Swimlanes so especialmente teis para a modelagem de processos empresariais
Em muitos casos, os swimlanes implicam concorrncia, ou pelo menos independncia, das atividades
Cliente
H
Solicitar pr oduto
Vendas
Estoque
Enviar pe dido
Re cebe r pe dido
Diagramas de Componentes
Componentes
Os componentes existem no mundo material, de bits So um elemento importante na modelagem dos aspectos fsicos de um sistema Um componente uma parte fsica e substituvel de um sistema, que realiza um conjunto de interfaces
Componentes
Componentes so coisas que podem ser executadas em ns (processadores, dispositivos, etc.) Exemplos de componentes so executveis, bibliotecas, tabelas, arquivos e documentos Um componente, tipicamente, uma verso fsica de elementos lgicos, como classes e interfaces
Componentes- Notao
Autenticao.exe
Animator.exe
IScripts
IModelos
IAnimacao
IRenderizao
Componentes e Dependncias
Format.dll JanelasComuns.dll
Palavras.exe
Palavras.ini Palavras.hlp
Ortograf.dll
Diagramas de Componentes
Diagramas de Componentes so usados para modelar os aspectos fsicos de um sistema Nos diagramas de componentes, so mostrados componentes e os relacionamentos entre eles
Diagramas de Componentes
Diagramas de componentes podem ser usados para modelar os aspectos fsicos de um banco de dados o cdigo fonte de um aplicativo uma API A nica restrio que o que est sendo modelado deve ser fsico (formado por bits) e no conceitual (ou lgico)
Exemplo
<<link>>
Cadastro.exe Usurios
FormCadastro.html
Banco
<<link>>
Autenticacao.exe
Senhas
Principal.html
FormEntrada.html
Diagramas de Implantao
Diagramas de Implantao
Os diagramas de implantao so usados para modelar o ambiente em que o 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.
Diagramas de Implantao
Os diagramas de implantao podem ser usados para descrever a topologia do ambiente no qual o software ser executado Os diagramas de implantao geralmente s fazem sentido para sistemas que rodam em vrias mquinas ou dispositivos Para sistemas que rodam em uma nica mquina e se comunicam apenas com dispositivos comuns, como o teclado, monitor, os diagramas de implantao no so necessrios
Ns e Associaes
Um n um elemento fsico que existe em tempo de execuo e representa algum recurso computacional. Um n, geralmente, possui memria e, muitas vezes, capacidade de processamento
Uma associao entre dois ns representa uma conexo fsica entre os ns, como um conexo Ethernet, uma linha serial ou um link de satlite
Diagramas de Implantao
PC - G309 Nestscape Communicator 5.0
Principal.html
servidorWeb
FormCadastro.html
Autenticao.exe servidorDeArquivos
Cadastro.exe
FormEntrada.html
servidorBancoDeDados
SGBD