Itens Estruturais - Interface Coleção de operações que especificam serviços de uma classe ou componente Descreve o comportamento visível externamente Raramente aparece sozinha. Em geral vem anexada à classe ou ao componente que realiza a interface Não especificam qualquer estrutura (não podem incluir atributos) nem qualquer implementação Itens Estruturais - Interface Notações Círculo ou Pirulito: usada quando for necessário apenas especificar a presença de uma costura do sistema. Em geral isto é necessário para os componentes e não para as classes Forma Expandida (classe estereotipada): quando for necessário visualizar detalhes do próprio serviço, expondo suas operações e outras propriedades. As operações pode exibir apenas o nome ou suas assinaturas completas <nome> <<interface>> <nome> <operações> 1
Itens Estruturais - Interface Nome Uma sequência de caracteres textual Para diferenciar o nome de uma interface do nome de uma classe é interessante incluir um I antes do nome de cada interface. Ex.: IOrigem Pode ser de dois tipos: Nome simples Nome do caminho: é o nome da interface tendo como prefixo o nome do pacote em que a interface está armazenada. Ex.: Networking::Irouter Itens Estruturais - Interface Exemplo IRunnable IStore Pedido <<interface>> IStore Load() Save() O componente Pedido implementa As interfaces Istore e IRunnable 2
Itens Estruturais - Colaborações Permitem nomear um agrupamento conceitual (sociedade de classes, interfaces e outros elementos que trabalham em conjunto para fornecer algum comportamento cooperativo) Abrange aspectos estruturais (os elementos que a compõem) e comportamentais (a dinâmica das interações entre os elementos) Itens Estruturais - Colaborações Não possui nenhum dos seus elementos estruturais, apenas referencia ou usa elementos estruturais que são declarados em outra parte Um elemento pode aparecer em mais de uma colaboração 3
Itens Estruturais - Colaborações A parte estrutural da colaboração é representada pelo diagrama de classes A parte comportamental da colaboração é representada pelo diagrama de interação ou, se a ênfase for no aspecto temporal das mensagens, o diagrama de sequência deve ser usado Itens Estruturais - Colaborações Notação: eclipse com linha tracejada <nome> 4
Itens Estruturais Caso de Uso Especifica o comportamento de um sistema ou de parte dele Descrição de um conjunto de sequência de ações realizadas pelo sistema para um determinado ator (pessoas ou sistemas automatizados) Itens Estruturais Caso de Uso Especificam o comportamento desejado mas não determinam como esse comportamento será executado Um Caso de Uso é realizado por uma colaboração (uma sociedade de elementos que implementam o comportamento do caso de uso) 5
Itens Estruturais Caso de Uso Exemplo: Especificar como um sistema de caixa eletrônico deve funcionar definindo, seus casos de uso: como os usuários deverão interagir com o sistema Itens Estruturais Casos de Uso Notação: eclipse com linha contínua Os nomes de casos de uso são expressões verbais ativas nomeando algum comportamento <nome> Valida Usuário 6
Itens Estruturais Classes Ativas São classes cujos objetos têm um ou mais processos ou threads, portanto, podem iniciar atividade de controle Semelhante à uma classe exceto pelos objetos representarem comportamento concorrente Itens Estruturais Classes Ativas Notação: semelhante a de classes mas com linhas mais grossas <nome> <atributos> <operações> 7
Itens Estruturais Componentes Partes físicas e substituíveis de um sistema que realizam um conjunto de interfaces Tipicamente componentes representam o pacote físico de elementos lógicos diferentes como classes, interfaces e colaborações Itens Estruturais - Componentes Notações Simples: retângulo com abas incluindo somente o nome <nome> Forma Estendida: inclui compartimentos adicionais para expor detalhes (em geral só é usado quando está modelando um sistema reflexivo capaz de manipular seus próprios componentes <nome> <detalhes> 8
Itens Estruturais Componentes Componentes X Classe (semelhanças) Ambos podem realizar um conjunto de interfaces Ambos podem participar de vários relacionamentos (dependência, generalização, associação) Ambos podem ser aninhados Ambos permitem instâncias Ambos podem participar de interações Itens Estruturais Componentes Componentes X Classe (diferenças) Classes representam abstrações lógicas; componentes representam coisas físicas (componentes podem estar em nós mas classes não) Classes podem ter atributos e operações diretamente. Em geral componentes somente têm operações que são alcançadas por meio de suas interfaces 9
Itens Estruturais Componentes Quando usar componentes e quando usar classes? Se o que é modelado está em um nó => Componente Caso contrário => Classe Itens Estruturais Nós Elemento físico existente em tempo de execução que representa um recurso computacional Representam o hardware onde os componentes são instalados e executados 10
Itens Estruturais Nós Notações Simples: cubo com nome <nome> Forma Estendida: inclui compartimentos adicionais para expor detalhes <nome> <detalhes> Itens Estruturais Nós Exemplo servidor processorspeed = 300MHz Memory = 128 Mb dbadmin.exe componente executável que reside no nó 11
Blocos Básicos - Itens Existem quatro tipos de itens: Itens Estruturais Itens Comportamentais Itens de Agrupamento Itens Anotacionais Itens Comportamentais São as partes dinâmicas dos modelos Estão conectados a elementos estruturais São 2 tipos: Interação Máquina de Estado 12
Itens Comportamentais Interação Comportamento que abrange um conjunto de mensagens trocadas entre objetos Pode representar o comportamento de uma operação individual ou de um conjunto de objetos Usadas para modelar o aspecto dinâmico das colaborações Itens Comportamentais Interação Notação: a mensagem é representada por uma linha cheia com seta incluindo o nome da operação <nome da operação> 13
Itens Comportamentais Interação Pode ser usado de duas maneiras Ênfase na ordem temporal das mensagens (no diagrama de sequência) Ênfase na sequência das mensagem (no diagrama de colaboração) Itens Comportamentais Interação 1:PosiçãoTempo(t) TráfegoAéreo Plano de Vôo 14
Itens Comportamentais Máquinas de Estado Especifica a sequência de estados pelas quais objetos ou interações passam durante sua existência em resposta a eventos Abrange elementos: estados, transições, eventos e atividades Itens Comportamentais Máquinas de Estado Interação X Máquina de Estados Usando a interação modela-se o comportamento de um conjunto de objetos Usando uma máquina de estados modelase o comportamento de um objeto individual 15
Itens Comportamentais Máquinas de Estado Termos e Conceitos Estado: é uma condição ou situação de um objeto Evento: é a especificação de uma ocorrência significativa Transição: é um relacionamento entre dois estados, indicando que um objeto no primeiro estado realizará certas ações e entrará no segundo estado quando um evento especificado ocorrer Ação: computação atômica executável que resulta na alteração do estado ou no retorno de um valor Itens Comportamentais Máquinas de Estado Notação: retângulo com cantos arredondados com: <nome> Nome Transições Estados Inicial e Final 16
Itens Comportamentais Máquinas de Estado Exemplo pressionar tecla desligar Ocioso Executando concluído Blocos Básicos - Itens Existem quatro tipos de itens: Itens Estruturais Itens Comportamentais Itens de Agrupamento Itens Anotacionais 17
Itens de Agrupamento São as partes organizacionais dos modelos os blocos em que os modelos podem ser decompostos Um tipo apenas: Pacotes Itens de Agrupamento - Pacotes Mecanismo de propósito geral para organização de elementos em grupos Diferentemente de componentes, que existem em tempo de execução, um pacote é puramente conceitual (existe apenas em tempo de desenvolvimento) Pacotes bem-estruturados agrupam elementos que estão próximos semanticamente e que tendem a se modificar em conjunto 18
Itens de Agrupamento - Pacotes Podem conter outros elementos (classes, interfaces, nós, colaborações, etc) e até outros pacotes Itens de Agrupamento - Pacotes Notação: semelhante a de um diretório Simples: inclui apenas o nome <nome> Forma estendida: para descrever elementos que pertencem ao pacote. Neste caso o nome do pacote vem na aba <nome> <elementos> 19
Blocos Básicos - Itens Existem quatro tipos de itens: Itens Estruturais Itens Comportamentais Itens de Agrupamento Itens Anotacionais Itens Anotacionais São as partes explicativas dos modelos comentários para descrever, esclarecer e fazer observações sobre qualquer elemento do modelo Um tipo apenas: Nota 20
Itens Anotacionais Nota É um símbolo pra representar restrições ou comentários sobre um elemento ou coleção de elementos Notação: um retângulo com uma dobra no canto incluindo um comentário em texto ou gráfico <comentário> Blocos Básicos - Itens Existem quatro tipos de itens: Itens Estruturais (classes, interfaces, colaborações, casos de uso, classes ativas, componentes, nós) Itens Comportamentais (interação e máquina de estado) Itens de Agrupamento (pacotes) Itens Anotacionais (nota) 11 itens 21
Relacionamentos Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Dependência Generalização Associação Realização Relacionamentos - Dependência Relacionamento de utilização A alteração de um item (o independente) pode afetar a semântica do outro item (o dependente) Notação: Linhas tracejadas com setas podendo incluir um rótulo 22
Relacionamentos - Dependência Notação: Linhas tracejadas com setas podendo incluir um rótulo Relacionamentos - Generalização Relacionamento entre itens gerais (superclasses) e tipos mais específicos desses itens (subclasses ou classes-filha) Generalizações são relacionamentos é-umtipo-de (uma classe Estudante é um tipo de uma classe mais geral, a classe Pessoa) As subclasses compartilham a estrutura e comportamento das superclasses 23
Relacionamentos - Generalização Notação: Linha sólida com seta em branco apontando a superclasse Relacionamentos - Associação Relacionamento estrutural que especifica objetos de um item conectado a objetos de outro item 24
Relacionamentos - Associação Notação: Linha sólida podendo incluir: Nome: pode ser utilizado para descrever a natureza do relacionamento. Pode-se atribuir direção para o nome, fornecendo um triângulo de orientação que aponta a direção como nome deve ser lido Papel: o papel é a face que a classe próxima a uma das extremidades apresenta à classe encontrada na outra extremidade da associação Multiplicidade: a quantidade de objetos que podem ser conectados pela associação. A multiplicidade em uma das extremidades da associação especifica para cada objeto da classe encontrada na extremidade oposta deve haver a determinada quantidade de objetos na extremidade próxima Relacionamentos - Associação Exemplo Pessoa 1..* * funcionário empregador Empresa 25
Relacionamentos - Realização Relacionamento no qual um item especifica um contrato cujo cumprimento é realizado por outro item. São encontrados em dois locais Entre interfaces e as classes ou componentes que as realizam Entre casos de uso e as colaborações que os realizam Relacionamentos - Realização Notação: Linha tracejada com seta branca 26
Relacionamentos - Realização Exemplo <<interface>> IagentedeRegra adicionarregra() ExplicarAção() RegrasDeContabilidade Relacionamentos - Agregação Relacionamento todo/parte que indica um item maior (o todo ) formado por itens menores (as partes ) É um tipo especial de Associação especificada utilizando-se uma associação simples com um diamante aberto na extremidade do todo O diamante sólido significa composição: as classes ligadas ao diamante é decomposta ou contém as classes da outra extremidade. 27
Exemplo Relacionamentos - Agregação Empresa 1 * Departamento todo parte Mecanismos Básicos Adornos Mecanismos de Extensão 28
Mec. Básicos - Adornos São itens gráficos ou visuais adicionados à notação básica de um elemento para permitir a especificação de detalhes Por exemplo, a notação básica para uma associação é uma linha mas podem ser incluídos adornos referentes a detalhes como: Papel multiplicidade Mec. Básicos Mec. de Extensibilidade Estereótipos Amplia o vocabulário da permitindo a criação de novos tipos de itens que são derivados dos já existentes mas específicos a determinados problemas Ao aplicar um estereótipo a um elemento está se estendendo a 29
Mec. Básicos Mec. de Extensibilidade Estereótipos É representado por um nome entre ângulos (p.ex., <<nome>>) colocado acima do nome de outro elemento Pode-se definir um ícone para o estereótipo e apresentá-lo à direita do nome Mec. Básicos Mec. de Extensibilidade Estereótipos - exemplo <<exceção>> Overflow! 30
Diagramas Diagrama é uma representação gráfica de uma coleção de elementos de um modelo São desenhados para permitir a visualização de um sistema sob diferentes perspectivas Um mesmo item pode aparecer em todos os diagramas ou em apenas alguns. Diagramas define 9 (nove) diagramas: Diagrama de Classes Diagrama de Objetos Diagrama de Casos de Uso Diagrama de Sequência Diagrama de Colaboração Diagrama de Atividades Diagramas de Interações Diagrama de Gráficos de Estados (Statechart) Diagrama de Componentes Diagrama de Desenvolvimento Modelam Aspectos Dinâmicos 31
Diagrama Diagrama de Classes Oferece uma visão estática da estrutura do sistema Exibe um conjunto de classes, interfaces e colaborações bem como seus relacionamentos. Podem conter notas e restrições, pacotes ou subsistemas e instâncias Diagrama Diagrama de Classes Dicas para criar um diagrama de classes: Atribua-lhe um nome que comunique seu propósito Distribua seus elementos de modo a minimizar o cruzamento de linhas Use notas e cores como indicações visuais para chamar a atenção de aspectos importantes Não exiba grande quantidade de tipos de relacionamentos 32
Diagrama Diagrama de Classes Empresa 1 Departamento nome: Nome localização * * Escritório Endereço: string membro 1..* 1 gerente Pessoa nome: Nome código: Inteiro ObterContrato() ObterDados() EscritórioMatriz InformaçãoContrato Endereço: string Diagrama Diagrama de Objetos Oferece uma visão estática de instâncias de itens encontrados no diagrama de classes Exibe um conjunto de objetos e relacionamentos Podem conter notas e restrições, pacotes ou subsistemas Pode-se dizer que é uma instância do diagrama de classes Não expressa informações sobre as msg passadas entre os objetos 33
Diagrama Diagrama de Objetos E:Empresa D1:Departamento Nome= Estoque D2:Departamento Nome= Vendas gerente p:pessoa Nome= Maria Código = 1010 Diagrama Diagrama de Casos de Uso Exibe um conjunto de casos de uso e atores Importantes para organização e modelagem de comportamentos do sistema Especificam e documentam o comportamento de um elemento para se entender como este elemento é utilizado (desenvolvedores precisam de casos de uso para poder implementar o sistema) 34
Diagrama Diagrama de Casos de Uso Sistema de Vendas cliente Solicita Produto Verifica Estoque Libera/ Cancela Venda Depto. Vendas Diagrama Diagrama de Sequência Diagrama de interação cuja ênfase está na ordenação temporal das mensagens Graficamente é representando por uma tabela que mostra objetos distribuídos no eixo X e mensagens, em ordem crescente no tempo, no eixo Y Contém objetos, vínculos e mensagens. Podem conter notas e restrições 35
Diagrama Diagrama de Sequência O objeto que inicia a interação é colocado mais a esquerda As mensagens são colocadas no eixo Y em ordem crescente de tempo, proporcionando ao leitor uma clara indicação visual do fluxo de controle ao longo do tempo Existe a linha de vida do objeto Diagrama Diagrama de Sequência Diferenças para o diagrama de colaboração: Existe a linha de vida do objeto Existe o foco de controle (um retângulo alto e estreito que mostra o período no qual um objeto está desempenhando uma ação) 36
Diagrama Diagrama de Sequência c:cliente BD <<create>> t:transação Compra(produto) OK/Cancela <<destroy>> Diagrama Diagrama de Colaboração Diagrama de interação cuja ênfase está na organização estrutural dos objetos que enviam e recebem mensagens Os objetos da colaboração são vértices de um grafo, os vínculos são os arcos e contém as mensagens que os objetos enviam e recebem. 37
Diagrama Diagrama de Colaboração Diferenças para o diagrama de sequência: Existe o caminho Existe o número de sequência (para indicar a ordem temporal de uma mensagem) Diagrama Diagrama de Colaboração c:cliente t:transação 1: <<create>> 2: Compra(produto) 3:<<destroy>> 38
Diagrama Diagrama de Gráfico de Estados Exibe uma máquina de estados dando ênfase no fluxo de controle de um estado para outro É formado por: Estados: situação na vida de um objeto onde ele realiza uma atividade ou aguarda um evento Transições: relacionamento entre dois estados Eventos: uma ocorrência significativa; um estímulo capaz de ativar uma transição de estado Atividades: execução em uma máquina de estado Modelam comportamento de uma interface, classe ou colaboração Diagrama Diagrama de Gráfico de Estados pressionar tecla desligar Ocioso Executando concluído 39
Diagrama Diagrama de Atividades Tipo especial de diagrama de estado onde: Estados são atividades Transições são ativadas pela conclusão de atividades Diagrama de Atividades X Diagramas de Interação Diagrama de Atividades: exibe o fluxo de uma atividade para outra Diagramas de Interação (Sequência e Colaboração): exibem fluxo de controle de um objeto para outro Diagrama Diagrama de Atividades Diagrama de Atividades X Diagrama de Gráfico de Estados (Statecharts) O diagrama de atividades é uma projeção dos elementos encontrados em um gráfico de atividades 40
Diagrama Diagrama de Atividades Ramificações: Especifica caminhos alternativos baseados em expressões booleanas É representado como um diamante Diagrama Diagrama de Atividades Compra Produto Verifica Estoque [Com Estoque] [Sem Estoque] Cancela Compra Libera Compra 41
Diagrama Diagrama de Atividades Bifurcação e União Modelam fluxos concorrentes Bifurcação: a divisão de um memo fluxo de controle em dois ou mais fluxos concorrentes poderá ter uma única transição de entra e duas ou mais transições de saída Abaixo da bifurcação as atividades associadas com cada um dos caminhos prosseguem paralelamente União: a sincronização de dois ou mais fluxos de controle concorrentes Poderá ter duas ou mais transições de entrada e uma única transição de saída Uma barra de sincronização é usada para especificar bifurcação e união dos fluxos paralelos de controle Diagrama Diagrama de Atividades Raias de Natação Particiona em grupos os estados de atividades de um diagrama de atividades (cada grupo representa um elemento responsável pela atividade) Cada grupo é chamado de raia de natação pois os grupos ficam separados de seus vizinhos por uma linha cheia vertical Cada raia de natação deve ter um nome único 42
Diagrama Diagrama de Atividades Cliente Vendas Estoque Compra Produto Verifica Estoque RespondePedido RecebePedido Cobrança Diagrama Diagrama de Componentes Modela aspectos físicos Exibe as organizações e as dependências de um conjunto de componentes Está relacionado com o diagrama de classes pois tipicamente componentes são mapeados para uma ou mais classes, interfaces, colaborações 43
Diagrama Diagrama de Componentes Elementos Componentes Interfaces Relacionamentos de dependências, generalização, associação e realização Podem conter notas e restrições Diagrama Diagrama de Componentes Usos comuns: Modelagem do Código Fonte Representa a modelagem do gerenciamento da configuração dos arquivos com código fonte Modelagem de Executáveis Modelagem de Bancos de Dados Físicos 44
Diagrama Diagrama de Componentes Estereótipos padrão que se aplicam a componentes: Executável: especifica um componente que poderá ser executado em um nó Biblioteca: especifica uma biblioteca estática ou dinâmica Tabela: especifica um componente que representa uma tabela de BD Arquivo: um componente que representa um documento contendo código fonte ou dados Documento: um componente que representa um documento Diagrama Diagrama de Componentes Modelagem de Código Fonte Mestre.h {versão = 3.0} Mestre.h {versão = 4.0} <<pai>> Mestre.cpp Estoque.h {versão = 2.0} 45
Diagrama Diagrama de Componentes Modelagem de um Banco de Dados cursos professores alunos Diagrama Diagrama de Desenvolvimento Sinônimo de Diagrama de Implantação Exibe a configuração dos nós de processamento em tempo de execução Está relacionado com o diagrama de componentes pois tipicamente um nós inclui um ou mais componentes 46
Diagrama Diagrama de Desenvolvimento Elementos: Nós Relacionamentos de Dependência e Associação Diagrama Diagrama de Desenvolvimento Modelagem de um sistema Cliente/Servidor Clientes Servidor console 2..* <<processador>> Servidor Http Desenvolv. http.exe 4..* <<processador>> Servidor X Desenvolv. Dbadmin.exe 47
Diagrama de Classes Diagramas RESUMO Vocabulário do domínio Diagramas de Casos de Uso Comportamento do sistema Diagrama de Sequências, de Colaboração, de Gráficos de Estados e de Atividades Forma como os itens do vocabulãrio trabalharão em conjunto para execução do comportamento especificado 48