Lar Finanças Pessoais Fazendo generalizações em UML 2 - dummies

Fazendo generalizações em UML 2 - dummies

Vídeo: Diagrama de Classe - Generalização/Especialização/Herança - Astah 2025

Vídeo: Diagrama de Classe - Generalização/Especialização/Herança - Astah 2025
Anonim

É natural classificar objetos em categorias e organizar categorias em subcategorias. Se você procura um lugar para viver, você se encontra categorizando uma unidade de moradia como uma casa, apartamento, moradia, condomínio, mansão, e assim por diante. As casas podem, por sua vez, ser ainda organizadas por estilos como o rancho, o nível dividido, o colonial e o saltbox. O UML fornece uma notação para capturar esses tipos de classificações - também conhecida como generalização e especialização - e utilizá-los como modelador e programador.

Alguns desenvolvedores orientados a objetos terão grandes comprimentos para economizar um pouco de trabalho. Quando eles podem modelar uma vez e reutilizá-la, eles estão interessados. Se eles podem escrever um método (o código do programa para uma operação) para uma classe apenas uma vez e usá-la muitas vezes, então inscreva-as para maior produtividade. Se você quer economizar tempo, especificando atributos e operações uma vez e depois reutilizando-os muitas vezes, continue lendo.

Ao definir classes, você pode notar que algumas classes possuem os mesmos atributos ou as mesmas operações. Quando este é o caso, você coloca esses recursos comuns (atributos, operações e assim por diante) em uma classe mais genérica chamada superclasse. As classes que compartilham os recursos comuns são conhecidas como subclasses da superclasse. Por exemplo, o comprimento do material gravado em uma fita de vídeo, fita de áudio, disco compacto ou filme é um atributo de todos os quatro tipos de mídia gravada. Essas classes também podem compartilhar outros atributos, como suas dimensões físicas e a data em que cada uma delas foi usada para fazer uma gravação. Neste caso, a superclasse seria RecordedMedia, as subclasses seriam Videotape, Audiotape, CompactDisc e MovieFilm, e alguns atributos compartilhados poderiam incluir recordingLength e totalLength.

Esse processo de encontrar atributos ou operações similares em classes é conhecido como generalização. Por exemplo, você generaliza o atributo recordLength para uma classe mais genérica chamada RecordedMedia. O processo para mostrar uma generalização em UML é simples:

1. Identifique as subclasses.

Localize classes com os mesmos atributos e / ou operações. Essas classes são suas subclasses.

2. Crie uma superclasse.

Forneça uma superclasse para manter os atributos e / ou operações comuns das subclasses. Dê à superclasse um nome que categoriza todas as subclasses. Colocar a superclasse acima das subclasses no diagrama torna mais fácil a leitura, mas não é necessário.)

3. Adicione recursos comuns à superclasse.

Remova os atributos e operações comuns das subclasses e coloque-os (uma vez) na superclasse.

4. Desenhe uma relação de generalização.

Você desenha uma linha de generalização de cada subclasse para a superclasse. Em UML, a linha de generalização é representada como uma linha contínua com uma ponta de seta oca na extremidade da superclasse. Na UML, uma linha com a ponta de flecha oca que conecta uma subclasse a uma superclasse é conhecida como uma relação de generalização.

Depois de criar uma superclasse com os recursos comuns, como atributos e operações, as subclasses herdam esses recursos da superclasse. Desta forma, você só precisa escrever os recursos comuns uma vez na superclasse em vez de muitas vezes em cada uma das subclasses.

Você pode dizer se você tem uma generalização olhando o idioma que você (ou outros) usam para descrever a relação entre as classes. Observe que, ao descrever as mídias gravadas e seus vários tipos, como a fita de vídeo anteriormente nesta seção, apareceu a frase "quatro tipos de mídia gravada". Se você se encontra usando frases como "tipo de" ou "tipo de", então é provável que você tenha uma generalização em suas mãos.

Diga que um de seus clientes está preocupado em acompanhar os materiais em um arquivo. Este cliente acumulou diferentes tipos de mídia gravada , como fitas de vídeo e fitas de áudio. Como modelistas, você precisa capturar as diferenças entre esses meios, bem como suas semelhanças. O diagrama na Figura 1 mostra os começos de várias generalizações, dispostas em uma hierarquia de herança .

Figura 1: Hierarquia de herança simples.

Os desenvolvedores usam o termo generalização ou herança para se referir ao mesmo conceito de reutilização de atributos compartilhados e operações que você mostra em uma superclasse e reutilização em subclasses. A generalização refere-se ao conceito de generalização de especificidades (as subclasses) para o genérico (a superclasse). A herança refere-se ao efeito da generalização nas subclasses.

Quando você vê uma relação de generalização entre as classes, seu significado é muito diferente do de uma associação associação entre classes. Uma associação é, em última instância, uma relação entre muitos objetos - algumas instâncias de uma classe têm um relacionamento (link) com instâncias da outra classe. Em uma relação de generalização entre classes , o relacionamento é realmente sobre as aulas. O melhor que você pode dizer é que um objeto criado a partir de uma subclasse contém todos os recursos da subclasse e da superclasse.

Você só tem um objeto de uma classe em uma relação de generalização. Mesmo que você mostre duas classes, a subclasse e a superclasse, você só possui um objeto que seja criado. Você pode pensar em um objeto da classe Videotape também ser um objeto da classe RecordedMedia por causa da herança. A Figura 2 mostra um objeto criado a partir da classe Videotape com todos os seus atributos.(A instância de uma classe é representada como um símbolo de objeto.) Você não tem dois objetos diferentes (um para RecordedMedia e outro para Videotape), apenas um objeto. Quando o objeto vtu83-1023 foi criado, todos os valores de seus atributos foram definidos. A gravação na fita é de 57 minutos. O comprimento total da fita física é de 60 minutos. A fita é uma videocassette Umatic com uma altura de 10 polegadas, uma largura de 7 polegadas e uma profundidade de 1. 5 polegadas. A gravação é analógica, e um registro do conteúdo da fita é anexado à fita para que o arquivista faça referência.

Figura 2: Uma instância que mostra todos os atributos herdados.

Você só tem uma instância definida por uma subclasse e sua superclasse. A subclasse e a superclasse podem ter uma operação de construtor (para criar a instância) e uma operação de destrutor (para destruir a instância). Quando o seu software é executado e você cria uma instância de uma subclasse, o construtor da superclasse é executado primeiro, seguido pelo construtor da subclasse. Quando chega a hora de eliminar a instância que você criou, o destruidor da subclasse é chamado primeiro, seguido do destrutor da superclasse. Se as coisas são mais complexas porque você tem subclasses de subclasses, lembre-se: os construtores são invocados do topo da hierarquia de herança para a parte inferior; Os destrutores são chamados em ordem da subclasse mais baixa até a superclasse mais alta.

Fazendo generalizações em UML 2 - dummies

Escolha dos editores

Fontes de dados dos governos estaduais e locais dos EUA - manequins

Fontes de dados dos governos estaduais e locais dos EUA - manequins

Encontrando os dados que você precisa dos governos estaduais e locais pode ser muito desafiador. Alguns estados estão mais interessados ​​em compartilhar dados do que outros. Você não pode contar com todos os governos estaduais ou locais para ter um portal de dados aberto ou para encontrar alguém no governo local para ajudá-lo a encontrar o que você precisa ou ...

Elementos adicionados aos Filtros Bloom - dummies

Elementos adicionados aos Filtros Bloom - dummies

Geralmente, você cria filtros Bloom para algoritmos de tamanho fixo (versões desenvolvidas recentemente Permite-lhe redimensionar o filtro). Você os opera adicionando novos elementos ao filtro e procurando-os quando já estiver presente. Não é possível remover um elemento do filtro depois de adicioná-lo (o filtro tem um indelével ...

Abordagens diferentes para grande análise de dados - manequins

Abordagens diferentes para grande análise de dados - manequins

Em muitos casos, a grande análise de dados será representada para o usuário final através de relatórios e visualizações. Como os dados brutos podem ser incompreensivamente variados, você terá que contar com ferramentas e técnicas de análise para ajudar a apresentar os dados de maneiras significativas. Novas aplicações estão disponíveis e serão abrangidas em duas categorias: ...

Escolha dos editores

Como a pesquisa local funciona? - Dummies

Como a pesquisa local funciona? - Dummies

A pesquisa local baseia-se em várias metodologias diferentes, incluindo a ciência conhecida como geolocalização, a ciência de tentar descobrir onde é que o computador é, geograficamente falando. Como o motor de busca descobre se um computador está no Colorado ou na Flórida? Bem, a pesquisa local geralmente funciona de algumas maneiras básicas. Diferente ...

Como adicionar sua empresa a um mecanismo de busca - manequins

Como adicionar sua empresa a um mecanismo de busca - manequins

Para obter o seu negócios em uma pesquisa local, você deve começar no mecanismo de pesquisa em si. O mecanismo de pesquisa mostra onde você já está nos resultados locais e, a partir daí, você pode pegar o controle de sua lista atual ou adicionar um novo.

Escolha dos editores

Como montar um controlador de PC ShowTime para displays de iluminação - manequins

Como montar um controlador de PC ShowTime para displays de iluminação - manequins

Quando você está configurando uma exibição de luz de férias, você pode comprar um controlador de PC ShowTime da Light-O-Rama como um kit de bricolage, mas você terá que montá-lo sozinho. Isso significa que você terá que soldar todos os componentes na placa de circuito principal, instalar a placa no recipiente à prova de intempéries e conectar todos os vários cabos ...

Eclipse Para Dummies Cheat Sheet - dummies

Eclipse Para Dummies Cheat Sheet - dummies

O eclipse é um ambiente de desenvolvimento de código aberto e integrado e um ótimo all-in - uma ferramenta para desenvolver e executar programas de computador. Ele pode ajudá-lo com uma infinidade de projetos, especialmente em Java.

Componentes eletrônicos básicos e o que eles fazem - manequins

Componentes eletrônicos básicos e o que eles fazem - manequins

Você trabalhará com uma série de componentes eletrônicos básicos ao construir circuitos eletrônicos, incluindo resistências, capacitores, diodos, transistores e circuitos integrados. Aqui está uma breve visão geral das funções de cada um desses componentes eletrônicos básicos. Resistores Um resistor é um componente que resiste ao fluxo de corrente. É um dos mais básicos ...