Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Modelagem de Sistemas Análise e Desenvolvimento de Sistemas Janete Pereira do Amaral janete@mentoring.com.br UNIDADE 3 – MODELAGEM UNIFICADA (UML) * DIAGRAMA DE ESTRUTURA – CLASSE E OBJETOS * Um diagrama de classes: Dá uma visão estática do sistema Exibe um conjunto de classes, interfaces e seus relacionamentos As classes especificam tanto a estrutura como o comportamento dos objetos (que são instâncias de classes) Ao completar os diagramas de interação, pode-se completar o diagrama de classes: Normalmente cria-se os diagramas de classe em paralelo aos de interação No final, precisa-se apenas incluir os detalhes que faltam (métodos, atributos ou associações) INTRODUÇÃO * É o ponto central do modelo UML Mostra as abstrações importantes do sistema e como elas se relacionam Os elementos básicos encontrados no diagrama de classe são os ícones de classe e de relacionamentos Classes, Atributos e Operações Uma classe é representada como um retângulo com um, dois ou três compartimentos O primeiro compartimento é reservado para o nome da classe. O segundo e terceiro compartimentos são opcionais e devem ser utilizados para listar os atributos e as operações definidas para a classe Diagrama de Classes * FormMatrícula GerenciadorMatrícula addEstudante(Curso, InfoEstud) Curso nome créditos open() addEstudante(EstInfo) Estudante nome nomatrícula Oferta de Curso localização open() addEstudante(EstInfo) Professor nome formação AlgoritmoMatricula Diagrama de Classes * Exemplo de Digrama de Classes Possui 1 1 Possui 1 1 1 Controla 1 1 Nome Atributo Método Associação Multiplicidade Navegabilidade * Uma classe é composta por três seções Nome da Classe Dvd Atributos Operações hora status Estrutura Comportamento voltar() pausar() adiantar() parar() tocar() Diagrama de Classes * Classe Diagrama de Classes Nome da Classe centralizada, fonte negrito e começando com letra maiúscula Atributos e Operações ajustados a esquerda, fonte normal e começando com letras minúsculas * Atributos Cada curso ofertado tem um número, uma sala e um horário CursoOfertado número sala horário A estrutura de uma classe é representada por seus atributos. Atributos podem ser encontrados através da análise da definição da classe, dos requisitos do problema e pela aplicação do conhecimento do domínio. Exemplo Atributo - Alinhamento à esquerda / Começando com minúsculo / Plain face * Classes individualmente fornecem pouco valor numa representação Muitas classes num sistema estão relacionadas com outras classes, tal que seus correspondentes objetos colaboram para realizar funcionalidades mais complexas Assim, adicionalmente a classes, atributos e operações, os diagramas de classes também representam vários tipos de relacionamentos existentes entre classes O UML distingue vários tipos de relacionamentos, cada um dos quais possui seu próprio conjunto de notação Relacionamentos * FormMatrícula GerenciadorMatrícula Curso Estudante OfertaCurso Professor (addEstudanteCurso, EstudInfo) nome créditos open() addEstudante(EstInfo) nome noMatrícula localização open() addEstudante(EstInfo) nome formação AlgoritmoMatrícula Relacionamentos * Generalizações - Abstrações Associações - Binárias / Ternárias e de Alta ordem Associação-Classe - Associação com propriedades Agregações/Composições Qualificação - Atributos de uma associação Multiplicidade/Cardinalidade - Número de elementos Links - Uma instância de uma associação Dependências - Relacionamento semântico Elementos Derivados - Computados de outros elementos Relacionamentos * Generalizações - Abstrações Relacionamentos * Generalizações - Abstrações Generalização/Especialização Relacionamentos * Generalização Relacionamentos * Generalização Relacionamentos * Associações É um relacionamento estrutural que especifica que objetos de um elemento estão conectados a objetos de outro elemento Descreve um vínculo que ocorre normalmente entre duas classes (binária), entre uma classe com ela mesma (unária) e entre várias classes (ternária/N-ária) Determinam-se que instâncias de uma classe estão de alguma forma ligadas às instâncias de outra classe – podendo haver troca de informações e compartilhamento de métodos ... * O fluxo dos dados pode ser em apenas uma direção ou em ambas direções Associações Pode existir mais de uma associação entre duas classes Se existir mais de uma associação entre duas classes, então elas devem ser nomeadas Dada uma instância de Coordenador existe um objeto Curso associado Dada uma instância de Curso existe um objeto Coordenador associado * Multiplicidade Multiplicidade define quantos objetos participam do relacionamento O número de instâncias de uma classe relacionada a uma instância de outra classe Especificado em cada uma das pontas da associação É a cardinalidade de uma associação * Numa Associação, é necessário colocar a multiplicidade, demonstrando quantas instâncias de uma classe estão relacionadas com quantas instâncias de outra classe. “Um aluno cursa uma ou até seis disciplinas” “Uma disciplina é cursada por zero ou até quarenta alunos” Multiplicidade * Multiplicidade Não especificada............ Exatamente um............... Zero ou mais................. Muitos (mesmo que 0..*) Um ou mais.................. Zero ou um................... Intervalo determinado.... Valores múltiplos......... * Navegação Especifica a direção da associação Associações e agregações são bidirecionais por default * Agregação Composição Relacionamentos * Um relacionamento de agregação é uma associação que reflete a construção física ou a posse lógica. Relacionamentos de agregação são casos particulares dos relacionamentos de associação, e só é necessário distingui-los quando for conveniente enfatizar o caráter "todo-parte" do relacionamento. Geralmente um relacionamento de agregação é caracterizado pela presença da expressão "parte de" na descrição do relacionamento, e pela assimetria da navegação. AGREGAÇÃO * COMPOSIÇÃO Um tipo mais forte de relacionamento todo-parte é o relacionamento de composição. Os objetos da classe parte não têm existência independente da classe todo. * COMPOSIÇÃO Composição é um tipo especial de agregação (por valor) Semanticamente equivalente a um atributo A remoção do todo implica na remoção das partes O acesso às partes é restrito ao todo * Na Figura 1 (Agregação) Um funcionário pode ou não ser membro de uma equipe de projeto. Os funcionários existem independentes das equipes de projeto Na Figura 2 (Composição) Uma peça precisa estar associada a um e somente um evento. Uma peça não pode existir independente do evento AGREGAÇÃO / COMPOSIÇÃO Figura 1 - Agregação Figura2 - Composição Equipe Projeto Funcionário 0..* 2..* Evento Peças 1 0..* * AGREGAÇÃO / COMPOSIÇÃO * Associação Os objetos estão cientes uns dos outros, de modo que podem trabalhar juntos Agregação 1- Protege a integridade da configuração 2- Funciona como uma única unidade 3- Controla através de um objeto – Propaga para baixo Composição Uma parte pode ser membro de somente uma configuração. A parte não pode existir fora da configuração ASSOCIAÇÃO / AGREGAÇÃO / COMPOSIÇÃO * Uma associação pode ser reflexiva. Uma auto-associação indica um relacionamento entre objetos de mesma classe que desempenham diferentes participações Na Figura indica-se uma “Pessoa” na qualidade de “chefe” relaciona-se com uma ou mais instâncias de “Pessoa” que exercem o papel de “subordinado” Auto - Associação Pessoa Marido Esposa é casado com * Associação - Classe Os relacionamentos podem ser de natureza complexa. Em certos casos, um relacionamento é mais bem explicado através de uma classe de associação, que exprime atributos e até operações que são propriedades do relacionamento como um todo e não de cada participante isoladamente. Na figura a classe “Emprego” inclui atributos e operações que não estão ligados a uma “Empresa” ou uma “Pessoa” isolada, mas ao relacionamento entre elas. Ex.: o atributo “data de início” ou a operação “imprimir atestado de emprego”. * Relacionamentos * Relacionamentos * Restrições Relacionamentos Pessoa Contrato Empresa 0..* 0..* 1..* 1..* {ou} * Nomes de Papéis e Associações Derivadas Relacionamentos * Dependências - Entre Classes Relacionamentos * Associações - Binárias / Ternárias e de Alta ordem Relacionamentos * Elementos Derivados - Associações Derivadas Relacionamentos * Elementos Derivados - Atributos Derivados Relacionamentos * * * * * * Os diagramas de classe descrevem as classes que formam a estrutura do sistema e suas relações As relações entre as classe podem ser associações, agregações, composições ou heranças As classes possuem além de um nome, os atributos e as operações que desempenham para o sistema. Um relacionamento indica um tipo de dependência entre as classes, essa dependência pode ser forte como herança ou agregação ou mais fraca como uma associação, mas indicam que as classe relacionadas cooperam de alguma forma para cumprir um objetivo para o sistema. O Diagrama de Classes, ao final da modelagem, será traduzido em uma estrutura de código que servirá de base para a implementação do sistema. Observa-se que não existe neste diagrama informações sobre os algoritmos que serão utilizados nas operações, e também não se pode precisar a dinâmica do sistema porque não há elementos sobre o processo ou a seqüência de processamento neste modelo. Estas informações serão representadas em outros diagramas (seqüência ou de estado). Diagrama de Classes * Construindo um Diagrama de Classes Identificar todas as classes que participam do modelo. Normalmente é conseguido através de análise dos diagramas de interação Adicionar as classes ao diagrama Copiar os atributos para as classes apropriadas Adicionar os nomes dos métodos observados nos diagramas de interação Escolher os tipos dos atributos e dos parâmetros dos métodos Incluir as associações necessárias para dar visibilidade de atributos Adicionar setas às associações para indicar a direção da visibilidade de atributos Introduzir linhas de relações de dependência para indicar a visibilidade que não seja de atributo * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Compartilhar