830 likes | 985 Views
Unified Modeling Language UML. Notações Básicas Referência: UML Resource Center. Introdução. A UML é uma linguagem gráfica para visualização, especificação, construção e documentação de artefatos que façam uso de sistemas complexos de software.
E N D
Unified Modeling LanguageUML Notações Básicas Referência: UML Resource Center Prof. Msc. Emerson Silas Dória
Introdução • A UML é uma linguagem gráfica para visualização, especificação, construção e documentação de artefatos que façam uso de sistemas complexos de software. • Adequada para modelar: sistemas de informação corporativos distribuídos; aplicações baseadas em WEB; e até sistemas complexos embutidos de tempo real. Prof. Msc. Emerson Silas Dória
Modelo Conceitual da UML • Para compreender a UML é preciso formar um modelo conceitual da linguagem e isso pressupõe aprender três elementos principais: • Blocos de construção básicos • Regras que determinam como esses blocos poderão ser combinados • Mecanismos comuns aplicados na UML Prof. Msc. Emerson Silas Dória
Blocos de Construção • O vocabulário da UML abrange 3 tipos de blocos de construção: • Itens; • Relacionamentos; e • Diagramas • Os itens são abstrações, os relacionamentos reúnem esses itens; os diagramas agrupam coleções interessantes de itens. Prof. Msc. Emerson Silas Dória
Itens • Existem 4 tipos de itens na UML: • Itens Estruturais: partes mais estática do modelo (substantivos) • Itens Comportamentais: partes dinâmica (verbos) • Itens de Agrupamento: partes organizacionais dos modelos da UML (pacotes) • Itens de Anotações: partes explicativas dos modelos da UML (notas) Prof. Msc. Emerson Silas Dória
orderform.java Servidor Itens • Itens Estruturais: partes mais estática do modelo (substantivos) Digitalizar Retina Window +origin #size open() close() move() display() Cadeia de Responsabilidade Window origin size ISpelling Prof. Msc. Emerson Silas Dória
t:Thread :Tookit Off a1:run(3) <<create>> onHook Idle keepAlive/Check run() p:Peer Working handleExpose ready(3) [signalOK] Connecting Connected offHook / reclaimConnection() <<destroy>> Itens • Itens Comportamentais: partes dinâmica (verbos) Prof. Msc. Emerson Silas Dória
Business rules Consider the use of the broker design pattern here Itens • Itens de Agrupamento: partes organizacionais dos modelos da UML (pacotes) • Itens de Anotações: partes explicativas dos modelos da UML (notas) Prof. Msc. Emerson Silas Dória
Relacionamentos • Existem 4 tipos de relacionamentos na UML: • Dependência • Associação • Generalização • Realização Prof. Msc. Emerson Silas Dória
AgendaDeCursos remover(c:Curso) adicionar(c:Curso) Relacionamentos • Dependência: é um relacionamento semântico entre dois itens, em que uma modificação em um item poderá afetar a semântica de outro item Dependência (Agenda de Cursos depende de Curso) Curso Quando excluir um Curso, retirar da agenda. Prof. Msc. Emerson Silas Dória
nome multiplicidade direção do nome fornece 1 1..* Produto Fornecedor associação Relacionamentos • Associação: é um relacionamento estrutural que especifica que os objetos de um item estão conectados a objetos de um outro item. Existem quatro tipos básicos de adornos a serem aplicados às associações (nome, papel, multiplicidade, agregação). Prof. Msc. Emerson Silas Dória
nome do papel funcionário empregador Pessoa Empresa associação Relacionamentos • Associação Prof. Msc. Emerson Silas Dória
agregação (relacionamento tipo fraco) Empresa Departamento 1 * parte todo composição Empresa Departamento 1 * Relacionamentos Composição: relacionamento forte do tipo “é parte de “. A composição entre um elemento (o “todo”) e outros elementos (“as partes”) indica que as partes só podem pertencer ao “todo” e são criadas e destruídas com ele. • Associação Prof. Msc. Emerson Silas Dória
1..* * Empresa Pessoa descrição dtadmissão salário Serviço Relacionamentos • Associação: Existem outros tipos de adornos a serem aplicados às associações (ex: classe de associação). Prof. Msc. Emerson Silas Dória
faz 1..* 0..* Estudante Prova data nota Relacionamentos • Outro exemplo de classe de associação Prof. Msc. Emerson Silas Dória
Ativos adicionar(...) remover(...) Conta Corrente Imóveis Seguridade Relacionamentos • Generalização: é um relacionamento de especialização/generalização, nos quais os objetos dos elementos especializados (filhos) são substituíveis por objetos do elemento generalizado (pais). generalização Prof. Msc. Emerson Silas Dória
Detectar Fraude Cartão <<interface>> IAgentedaRegra AdicionarRegra() AlterarRegra() ExplicarRegra() RegrasDeContabilidade Enviar Pedido Crédito Gerenciar Pedido Cliente Validar Transação Gerar Conta Relacionamentos • Realização: É um relacionamento semântico entre classificadores, em que um classificador especifica um contrato que outro classificador garante executar. É utilizado: no contexto de interfaces e no contexto de colaborações em casos de usos. Prof. Msc. Emerson Silas Dória
Extensibilidade • A UML oferece três mecanismos para a extensão da sintaxe e da semântica da linguagem, são eles: • Estereótipos • Valores atribuídos • Restrições Prof. Msc. Emerson Silas Dória
<<container>> ActionQueue {version=3.2} add(a:Action) remove(n: Integer) <<query>> length():Integer <<helper functions>> reorder() Extensibilidade estereótipo valor atribuído {add runs in O(1) time} restrição Prof. Msc. Emerson Silas Dória
ExtensibilidadeEstereótipos • Umestereótipo é um mecanismo de extensão introduzido pela UML, que permite que o usuário estenda o meta-modelo para suprir necessidades que não encontram-se definidas entre os elementos dos diagramas. • A apresentação geral de um estereótipo é o nome do estereótipo colocado entre os símbolos << >>. • Um estereótipo geralmente é aplicado a classes, relacionamentos de dependência, atributos e operações. • Exemplo: <<abstract>> aplicado a uma classe indica que a classe não pode ter objetos, é uma classe que nunca deve ser instanciada.
Clientes adicionar(...) remover(...) <<ator>> Clientes adicionar(...) remove(...) Cliente ExtensibilidadeEstereótipos - Exemplos
{versão=3.2 autor= tec} Fila <<exceção>> Overflow adicionar( ) remover( ) {ordenado} <<abstrato>> Veículo ExtensibilidadeEstereótipos - Exemplos Prof. Msc. Emerson Silas Dória
ExtensibilidadeValores atribuídos • Valor atribuído: permite atribuir um tipo particular de propriedade a um ou vários blocos de construção. {valor atribuído = valor} • Exemplo • {valor > 100} = exemplo de uma pré-condição para a execução de um método
{versão=3.2 autor= tec} Fila Servidor {processadores = 3} adicionar( ) remover( ) ExtensibilidadeValores atribuídos - Exemplos Prof. Msc. Emerson Silas Dória
ExtensibilidadeRestrições • Restrição: é uma relação semântica entre elementos do modelo. Especifica condições ou proposições que devem ser mantidas verdadeiras • Uma restrição é mostrada como uma cadeia entre chaves {} Fila {ordenado} adicionar( ) remover( )
Contrato de Seguros Pessoa 0..* {or} 1..* 1..* Empresa ExtensibilidadeRestrições - Exemplos Prof. Msc. Emerson Silas Dória
Um diagrama é uma apresentação gráfica de um conjunto de elementos com objetivo de visualizar um sistema sob diferentes perspectivas. Diagramas • Diagrama de Classes • Diagrama de Objetos • Diagrama de Casos de Uso • Diagrama de Seqüência • Diagrama de Colaboração • Diagrama de Estados • Diagrama de Atividades • Diagrama de Componentes • Diagrama de Implantação Prof. Msc. Emerson Silas Dória
Cliente +CódigoCliente -LimiteCredito Produto Pessoa Empresa Pedido IncluirPedido(...) AtenderPedido(...) Produto Automotivo Produto Agrícola Produto Híbrido Diagrama de Classes {ou} 1 * ItensPedido #quantidade IncluirItemPedido(...) CalcularTotal(...) EmpresaCliente Prof. Msc. Emerson Silas Dória
+ valor: Real + data: Date = data atual + cliente: String - num_faturas: Integer = 0 + status: String = nãopago {nãopago, pago} Fatura Diagrama de Classes • A sintaxe padrão de um atributo é: visibilidade nome : tipo = valor_inicial {string de propriedade} • onde visibilidade é: + visibilidade pública # visibilidade protegida - visibilidade privada
+ desenhar ( ) + escala (percentual:integer=25) - pos_retorno( ):position Figura Diagrama de Classes • A sintaxe da operação é: visibilidade nome (lista_parâmetros): tipo_do_retorno {string de propriedade} • na qual lista_parâmetros é um lista de parâmetros formais separados por vírgula, cada um especificado segundo sintaxe: nome : tipo = valor_padrão
Exemplos Prof. Msc. Emerson Silas Dória
Exemplos Prof. Msc. Emerson Silas Dória
Um diagrama é uma apresentação gráfica de um conjunto de elementos com objetivo de visualizar um sistema sob diferentes perspectivas. Diagramas • Diagrama de Classes • Diagrama de Objetos • Diagrama de Casos de Uso • Diagrama de Seqüência • Diagrama de Colaboração • Diagrama de Estados • Diagrama de Atividade • Diagrama de Componentes • Diagrama de Implantação Prof. Msc. Emerson Silas Dória
Autor Computador Usa Diagrama de nome: String nome: String Classes 0..1 1..* idade: Integer memória: Integer PC Profissional de Bob: Computador nome: “ Pent. III” Bob: Autor Diagrama de memória: 64 nome: “ Bob J.” Objetos idade: 32 PC Doméstico de Bob: Computador nome: “ Compaq Pentium MMX” memória: 32 Diagrama de Objetos Prof. Msc. Emerson Silas Dória
c: Companhia objeto d1: Departamento d2: Departamento nome = "Vendas" nome = "RH" vinculo valor do atributo gerente objeto anônimo p:Pessoa : Informações Adicionais nome = "Eric" cod = "4362" endereço = "Rua St. Inacio, 1472" cargo = "Chefe de Diagrama de Objetos Prof. Msc. Emerson Silas Dória
Um diagrama é uma apresentação gráfica de um conjunto de elementos com objetivo de visualizar um sistema sob diferentes perspectivas. Diagramas • Diagrama de Classes • Diagrama de Objetos • Diagrama de Casos de Uso • Diagrama de Seqüência • Diagrama de Colaboração • Diagrama de Estados • Diagrama de Atividade • Diagrama de Componentes • Diagrama de Implantação Prof. Msc. Emerson Silas Dória
Associação Nome do Sistema Ator 1 Ator 2 Caso de Uso B Caso de Uso A Caso de Uso C Fronteira do Sistema Diagrama de Casos de Uso Prof. Msc. Emerson Silas Dória
Diagrama de Casos de Uso • Casos de Uso podem ser organizados pela especificação de relacionamentos de: • Generalização • Inclusão <<include>> • Extensão <<extend>> Prof. Msc. Emerson Silas Dória
Cliente Cliente Comercial Cliente Industrial Cliente Pessoa Física Diagrama de Casos de UsoGeneralização entre Atores • Grupos gerais de atores especializados, utilizando o relacionamento de generalização. Prof. Msc. Emerson Silas Dória
Cliente Cliente Comercial Cliente Industrial Cliente Pessoa Física Diagrama de Casos de UsoGeneralização entre Atores • Outra forma de representar a generalização. Prof. Msc. Emerson Silas Dória
Validar Usuário Checar Senha Digitalizar Retina Diagrama de Casos de UsoGeneralização entre Casos de Uso • O caso de uso filho herda o comportamento e o significado do caso de uso pai. Prof. Msc. Emerson Silas Dória
Diagrama de Casos de UsoInclusão • Um relacionamento includede um caso de uso A para um caso de uso B indica que uma instância de Ainclui o comportamento especificado por B. • Esse tipo de associação é útil para evitar a repetição de um fluxo de eventos várias vezes. • Essa associação é mostrada com um relacionamento de dependência e acrescentando o estereótipo << include>>. Prof. Msc. Emerson Silas Dória
Diagrama de Casos de UsoExemplo de Inclusão Sacar Dinheiro <<include>> Validar Usuário Checar Senha Digitalizar Retina Prof. Msc. Emerson Silas Dória
Diagrama de Casos de UsoExtensão • Um relacionamento extendsde um caso de uso A para um caso de uso B indica que uma instância de Bpode usar o comportamento especificado por A. • É um tipo de associação usada para a modelagem da parte de um caso de uso que é opcional (não é obrigatório) para o sistema ou uma parte do caso de uso que só é executada sob determinadas condições. • Essa associação é mostrada com um relacionamento de dependência e acrescentando o estereótipo << extend>>. Prof. Msc. Emerson Silas Dória
Informar Saldo Insuficiente Sacar Dinheiro ponto de extensão <<extend>> <<include>> Validar Usuário Checar Senha Digitalizar Digital Diagrama de Casos de UsoExemplos de Extensão Cliente Cadastrar Cliente Cadastrar Venda <<extend>> Prof. Msc. Emerson Silas Dória
Sistema de Validação de Cartão de Crédito Exemplos Prof. Msc. Emerson Silas Dória
Telefone Celular Exemplos Prof. Msc. Emerson Silas Dória
Estabelecer Limites Atualizar Contas Sistema de Contabilidade Gerente Comercial <<include>> Analisar Riscos <<include>> Avaliar Negócio Analista Comercial Fechar Preço Registrar Negócio Vendedor Negócio com Limites Excedidos Exemplos Prof. Msc. Emerson Silas Dória
Um diagrama é uma apresentação gráfica de um conjunto de elementos com objetivo de visualizar um sistema sob diferentes perspectivas. Diagramas • Diagrama de Classes • Diagrama de Objetos • Diagrama de Casos de Uso • Diagrama de Seqüência • Diagrama de Colaboração • Diagrama de Estados • Diagrama de Atividade • Diagrama de Componentes • Diagrama de Implantação Prof. Msc. Emerson Silas Dória
Um DI mostra uma interação formada por um conjunto de objetos e seus relacionamentos, incluindo mensagens que podem ser trocadas entre eles; Um Diagrama de Seqüência é um DI que dá ênfase à ordenação temporal das mensagens; Um Diagrama de Colaboração é um DI que dá ênfase à organização estrutural dos objetos que enviam e recebem mensagens; Diagramas de Interação Prof. Msc. Emerson Silas Dória