Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Modelagem Estrutural - Diagrama de Classes e Diagrama de Objetos Franklin Ramalho Universidade Federal de Campina Grande - UFCG SI2-UFCG 2 Agenda - Diagrama de Classes - Classes - Atributos - Operações - Interfaces - Relacionamentos - Portas - Pacotes - Diagrama de Objetos - Exercício SI2-UFCG 3 Diagrama de Classes • É um diagrama que mostra um conjunto de classes, interfaces e relacionamentos. • Responsável por modelar a parte estática do sistema • Contém: - Classes - Atributos - Operações - Interfaces - Relacionamentos - Portas - Pacotes - Notas, restrições, etc. SI2-UFCG 4 Classes • Classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica • Propriedades em classes: – Leaf „{leaf}‟ após nome da classe – Root „{root}‟ após nome da classe – Multiplicidade Figura Circulo {leaf} Poligono 6 SI2-UFCG 5 Classes Abstratas • Uma classe que não pode ser instanciada • Permite refinamentos através de hierarquia Figura Circulo {leaf} Poligono 6 SI2-UFCG 6 Classes • Classe concreta – atributos + assinatura de operações + Implementação de operações • Classe abstrata – atributos + assinatura de operações 2 SI2-UFCG 7 Classes Ativas • Classes associadas com um ou mais thread • Classes ativas são importantes para modelar objetos com comportamento concorrente Supervisor SI2-UFCG 8 Atributos • Propriedades: – Derivado – Visibilidade • (public, protected, private, package) – Nome – Multiplicidade – Tipo – Valor inicial default – Estereótipo – Escopo • Instance (default) • Classifier (propriedade sublinhada) SI2-UFCG 9 Atributos • Tipo de um atributo - Uma outra classe ou um tipo primitivo: – Integer – UnlimitedNatural – Boolean – String SI2-UFCG 10 Atributos • Propriedades pré-definidas: – Changeable (default) – addOnly – frozen Propriedades sobre atributos SI2-UFCG 11 Operações • Assinatura comum de serviços fornecidos por membros da uma classe • Propriedades: – Visibilidade – Nome – parâmetros • Direção • nome • Tipo • Multiplicidade • Valor default – Tipo de retorno • Escopo: – Instance – Classifier SI2-UFCG 12 Operações • Propriedades pré-definidas: – leaf – isQuery – sequential – guarded – concurrent Propriedades sobre operações 3 SI2-UFCG 13 Interfaces • Artefato contendo um conjunto de operações que especificam um serviço – Em UML, pode possuir propriedades (atributos ou associationEnds) • Serviços – Oferecidos • Interfaces não têm instâncias Impressora Imprimivel Imprimivel Impressora + imprimir() SI2-UFCG 14 Interfaces • Artefato contendo um conjunto de operações que especificam um serviço – Em UML, pode possuir propriedades (atributos ou associationEnds) • Serviços – Requeridos Documento Imprimivel Imprimivel Documento + imprimir() SI2-UFCG 15 Relacionamentos • Um relacionamento é uma conexão semântica entre elementos de modelagem • Relacionamentos entre classes: – Generalização – Associação – Dependência – Realização SI2-UFCG 16 Generalização • Generalização – relacionamento entre um elemento mais geral e um mais específico. • Generalização de classes: uma classe geral (super- classe) e uma mais específica (sub-classe) SI2-UFCG 17 Generalização • Sub-classe herda as características de sua super-classe – Atributos – Operações – Relacionamentos – Restrições • Sub-classes podem adicionar novas características e também sobrescrever as já existentes em sua super- classe – respeitando as restrições impostas! • UML permite herança múltipla SI2-UFCG 18 Generalização • Classes e operações abstratas em super-classes são usuais • Uma sub-classe concreta deve implementar todas operações abstratas que ele herda 4 SI2-UFCG 19 Generalização • Atributos e operações com visibilidade private (-) não são acessíveis de sua sub-classe. • Atributos com visibilidade protected (#) são acessíveis de suas sub-classes, mas não de outras classes. • Atributos com visibilidade package (~) são acessíveis de qualquer elemento pertencente ao mesmo pacote ou a qualquer outro aninhado a ele. • Instancias de uma sub-classe devem satisfazer todas as restrições da sua super-classe (principle of substituability) SI2-UFCG 20 Conjuntos de Generalização • Uma classe pode ter várias hierarquias • Constraints: – complete or incomplete – overlapping or disjoint – Default: {incomplete, disjoint} SI2-UFCG 21 Associação • Associação é um relacionamento estrutural, que especifica que objetos de uma classe são conectados com objetos de uma outra classe • Propriedades: – Nome – Direção da navegação – Association-ends • Multiplicidade • papel • qualificador SI2-UFCG 22 Qualificador • Um atributo da associação cujo valor permite achar um ou mais objetos de um end da associação a partir de um objeto do outro end da associação. Banco Cliente NumConta * Banco Cliente nacionalidade * SI2-UFCG 23 Qualificador • Uma qualificador pertence a um associationEnd e não à uma classe! • Usualmente, um qualificador refere-se a um atributo da classe cujas instâncias estão sendo filtradas (p.e. classe Cliente) SI2-UFCG 24 Agregação • Associação entre todo-parte é conhecida como agregação Time Jogador * 5 SI2-UFCG 25 Composição • Composição é um tipo especial de agregação que ocorre quando o objeto “todo” é responsável pela existência e armazenamento dos objetos “parte” • Há uma dependência das partes com relação ao todo Corpo Vivo Coração 1 Quadrado Lado 4 SI2-UFCG 26 Associações com restrições • UML oferece alguns tipos de restrições pré-definidos para seus elementos • Conjunto limitado de restrições pré-definidas SI2-UFCG 27 Realização • Realização é um relacionamento entre classificadores onde um especifica um contrato e outro garante cumpri-lo • Classes concretas realize serviços especificados por uma interface Impressora Imprimivel Imprimivel Impressora + imprimir() SI2-UFCG 28 Dependência • Dependência – indica que a mudança na especificação de um elemento deve afetar a especificação de outro elemento. • Entre: pacotes, classes, objetos e classes, etc. Documento Imprimivel Imprimivel Documento + imprimir() SI2-UFCG 29 Dependência • UML prescreve um conjuntode tipos de dependências (estereotipadas): • <<use>> • <<call>> • <<parameter>> • <<instantiate>> • <<trace>>, etc. SI2-UFCG 30 Impressora Porta • Uma propriedade de um classificador que especifica um ponto de interação entre: – Classificador e o ambiente; – Classificador e suas partes. – Exemplo: Serviços providos e requeridos por uma classe • Link entre uma classe e uma ou mais interfaces que ela realiza e/ou requer Imprimivel ServiçosDeImpressão Conectavel 6 SI2-UFCG 31 Classe-Associação • Suponha que uma pessoa possa trabalhar em várias empresas • Uma empresa pode conter vários empregados Pessoa Empresa * * Onde deve ficar o salário? SI2-UFCG 32 Classe-Associação • Uma associação entre duas classes pode possuir propriedades: classes-associação Pessoa Empresa * * Emprego +salário: Integer SI2-UFCG 33 Pacotes • Agrupa um conjunto de elementos UML – Namespace – PackageableElement • Cada elemento do modelo deve pertencer, no máximo, a um pacote • Relações entre pacotes: – Dependências • Aninhamento (sub-pacotes) • Import • elementImport • access (private import) • Merge SI2-UFCG 34 Pacotes SI2-UFCG 35 Merge entre pacotes • Integra elementos de dois pacotes em um pacote resultante SI2-UFCG 36 Agenda - Introdução - Características de UML - Diagramas UML - Diagrama de Classes - Classes - Atributos - Operações - Interfaces - Relacionamentos - Portas - Pacotes - Diagrama de Objetos - Exercício 7 SI2-UFCG 37 Diagrama de Objetos • Diagrama de Objetos é um diagrama que mostra um conjunto de objetos e seus relacionamentos instanciados em um dado momento. • Fornece uma visão dos valores armazenados pelos objetos das classes definidas dos diagramas de classes em um determinado momento • Simulação • Validação SI2-UFCG 38 Diagrama de Objetos • Contém: – Instâncias de classes (objetos) – Instâncias de relacionamentos (links) entre objetos – Detalhes estruturais: • Valores de atributos • Estados • Objetos são semelhantes às classes – Mas não possuem operações! • Links não possuem multiplicidades – Um link ocorre exatamente entre dois objetos SI2-UFCG 39 Diagrama de Objetos • Objetos podem ser: – Rotulados – Anônimos • Não se pode ter 02 objetos anônimos instanciando a mesma classe – Órfãos • Úteis nas análises iniciais – Ativos SI2-UFCG 40 Diagrama de Objetos • Um diagrama de objetos é uma instância de um diagrama de classes joao:Pessoa :Pessoa joao:Pessoa joao joao:Pessoa pc1:Computador memoria = 128 idade = 19 [navegando] Pessoa Computador memoria = integer idade = integer SI2-UFCG 41 Estudo de Caso – Sistema de Matrícula da UFCG SI2-UFCG 42 Atributos não deveriam ser públicos? 8 SI2-UFCG 43 Atributos não deveriam ser públicos? SI2-UFCG 44 SI2-UFCG 45 SI2-UFCG 46 SI2-UFCG 47 SI2-UFCG 48 9 SI2-UFCG 49 Exercício 1 • Construir um diagrama de classes que descreva um programa de fidelidade para companhias que oferecem vários tipos de bônus para seus clientes. Os clientes tornam-se sócios do programa e passam assim a possuir um cartão que pode ser usado para efetuar transações, sejam de uso ou ganho de pontos. Para cada transação realizada, pontos devem ser debitados ou computados na conta do sócio. O programa possui parceiros que oferecem serviços. Cada serviço tem um nível associado: ouro, prata ou bronze. Diferentes sócios podem fazer uso de diferentes níveis de serviço, de acordo com a cor de seu cartão: ouro, prata ou bronze. SI2-UFCG 50 Exercício 2 • Faça um diagrama de objetos para o diagrama de classes do exercício 1 SI2-UFCG 51 Exercício 3 • Construa um diagrama de classes para: – Rede social – Campeonato brasileiro de futebol – Série A • Times, jogadores, juizes, turnos, pontuação, classificação, rebaixamento, etc. – Pesquisa da UFCG • Projeto, orientador, carga horária, pós-graduação, papers, patentes, contrato, etc. – Locadora • Cliente, filmes, dvds, reserva, empréstimo, pagamento, multas, etc. SI2-UFCG 52 Referências • Especificação de UML da OMG
Compartilhar