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

Como criar um módulo HTML personalizado no Joomla - dummies

Como criar um módulo HTML personalizado no Joomla - dummies

Uma das grandes coisas sobre o Joomla é o quão incrivelmente flexível é. A instalação padrão do CMS inclui 23 módulos diferentes para ajudá-lo a fazer seu site funcionar sem problemas. Às vezes, no entanto, você pode querer adicionar uma função ao seu site que esses 23 módulos simplesmente não vão cobrir. Sob tais circunstâncias, você pode querer considerar ...

Como criar um item de menu no Joomla Content Management - manequins

Como criar um item de menu no Joomla Content Management - manequins

Um item de menu determina o layout dos artigos, que é um dos aspectos do Joomla para o qual você precisa se acostumar. As páginas da Web não existem fisicamente no Joomla - elas são apenas itens no seu banco de dados - até que a página seja acessada. Quando você abre um artigo, o Joomla tira os dados necessários do ...

Como criar um novo item de menu com o Joomla! 1. 6 - dummies

Como criar um novo item de menu com o Joomla! 1. 6 - dummies

Não estresse se você precisa criar um item de menu em sua página da Web interativa - é fácil ao usar o Joomla! Gerenciador de menu. Para adicionar itens de menu a um site existente, basta usar estas etapas: Escolha Menus → Gerenciador de menus para abrir o Gerenciador de menus. Clique no nome do menu que deseja adicionar um novo ...

Escolha dos editores

Obtendo Ajuda do Eclipse - dummies

Obtendo Ajuda do Eclipse - dummies

Com a complexidade do Java e a nuance do Eclipse, você não pode esperar para lembrar de tudo. Às vezes, você precisa de um pouco mais de ajuda do Eclipse para começar sua programação. Felizmente, o Eclipse oferece ajuda geral e sensível ao contexto: para ajuda sensível ao contexto: no Windows, pressione F1. No Linux, pressione Ctrl + F1. Em um Mac, pressione ...

Software gratuito: preenchimento automático de células no OpenOffice. org Calc - dummies

Software gratuito: preenchimento automático de células no OpenOffice. org Calc - dummies

OpenOffice. org - uma alternativa gratuita para o Microsoft Office - inclui Calc, uma planilha eletrônica semelhante ao Excel. O Calc fornece uma maneira fácil de criar automaticamente uma coluna ou linha de números em qualquer sequência que você especificar. Esse recurso de preenchimento automático é útil para criar listas numeradas ou preencher os cabeçalhos de colunas e linhas de tabelas, como ...

Acessos acessíveis no modo de exibição do Prezi - dummies

Acessos acessíveis no modo de exibição do Prezi - dummies

O prezi possui dois modos de operação diferentes: Modo de edição, no qual você crie sua apresentação e Show Mode, no qual você apresenta suas criações. No modo Show, use esses atalhos úteis para tornar sua apresentação ainda mais suave. Use esta como uma lista de verificação de prática antes de começar: Use esta função: Para fazer isso: Completo ...

Escolha dos editores

Elementos HTML básicos - dummies

Elementos HTML básicos - dummies

HyperText Markup Language (HTML) é o idioma da web, onde os elementos ditaram a formatação e o estilo do seu conteúdo. Os elementos HTML compõem a codificação baixada que você vê quando você acessa uma página da Web em seu navegador da Web (como Internet Explorer, Firefox ou Safari). Aqui estão alguns elementos básicos para você ...

Usando AutoCAD DesignCenter - dummies

Usando AutoCAD DesignCenter - dummies

DesignCenter é um nome tolo para uma paleta útil, se um pouco ocupada. A paleta DesignCenter é útil para dados de mineração de todos os tipos de desenhos. Enquanto a paleta Propriedades está preocupada com as propriedades do objeto, a paleta DesignCenter lida principalmente com objetos nomeados: camadas, tipos de linha, definições de bloco (isto é, símbolo), estilos de texto e outros objetos organizacionais ...

Zoom e Panning no AutoCAD - dummies

Zoom e Panning no AutoCAD - dummies

O AutoCAD facilita a panorâmica, oferecendo barras de rolagem e panning em tempo real. Na panorâmica em tempo real (em oposição à panorâmica de finalização), você pode ver objetos movendo-se na tela enquanto você arrasta o mouse para cima e para baixo ou para frente e para trás. Claro, o ponto de vista está em movimento, não os objetos. Tanto a panorâmica quanto o zoom mudam a visualização ...