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 2024

Vídeo: Diagrama de Classe - Generalização/Especialização/Herança - Astah 2024
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

Acalma suas emoções ao praticar Mindfulness - dummies

Acalma suas emoções ao praticar Mindfulness - dummies

Aqui, você descobre a maneira consciente de gerenciar as emoções - as etapas para tome quando estiver sentindo baixo, excessivamente irritado ou desconfortavelmente ansioso. As emoções positivas podem ser um sentimento maravilhoso. A alegria, a alegria, a emoção e a felicidade são perfeitas. Mas como você pode lidar com as chamadas emoções negativas? Use a atenção para a saúde emocional A atenção plena está se tornando ...

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Você pode encontrar a meditação mindfulness é uma ótima maneira de Comece o seu dia de trabalho. Quando chegar ao trabalho pela manhã, talvez já esteja estressado. Depois de uma agitada hora ou duas preparando as crianças para a escola ou regatear com seu parceiro ou lidar com alguma emergência em casa, seguido de ...

Os melhores sites Mindfulness - dummies

Os melhores sites Mindfulness - dummies

, Independentemente de você morar no Reino Unido ou em outro lugar, se você procurar "mindfulness" 'on-line, você literalmente obterá milhões de resultados. Como você pode dizer o trigo da palha? Aqui estão alguns sites que você achará útil. Atento. Este recurso maravilhoso tem muitos conteúdos de alta qualidade de professores excelentes de atenção plena. O ...

Escolha dos editores

HDR Solução de problemas: Nada está funcionando - manequins

HDR Solução de problemas: Nada está funcionando - manequins

Quando você se depara com uma situação com suas fotografias de alcance dinâmico elevado e parece que nada que você está fazendo está funcionando - as configurações não parecem boas, a imagem parece errada, os efeitos são ruins - relaxe e faça uma pausa. A imagem está lhe dizendo algo. Que algo às vezes é relacionado a forçar ...

HDR Resolução de problemas: falta de imaginação - dummies

HDR Resolução de problemas: falta de imaginação - dummies

A imaginação é uma coisa poderosa ao preparar imagens HDR, fato que é tornou-se mais óbvio quando você vê o resultado de não usá-lo versus usá-lo. A imagem superior desta figura é uma imagem HDR de um diner local durante a "hora dourada" - naquele horário atrasado (ou manhã) quando ...

HDR Solução de problemas: Sharpening - dummies

HDR Solução de problemas: Sharpening - dummies

Se você ficar apanhado na perfeição, você está preparado para aumentar seu HDR imagens. Os fotógrafos às vezes estão obcecados com a nitidez em suas fotos. Eles querem que tudo seja pixelly perfeitamente afiado do nariz da câmera até o infinito, independentemente da lente, abertura, ISO ou velocidade do obturador que eles usem. Esta figura mostra os resultados ...

Escolha dos editores

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Em qualquer componente de rede da Cisco, o show O comando de versão é aplicável a qualquer hardware usando o Sistema Operacional Cisco IET (Internetwork Operating System), incluindo switches. O comando show version mostra informações ligeiramente diferentes, de acordo com o tipo de dispositivo em que você usa. Veja a saída do comando show version em um switch e ...

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Você precisa usar o modo EXEC privilegiado se quiser realmente tem acesso de atualização a um sistema de rede Cisco,. Para entrar neste modo no modo EXEC do usuário, emita o comando enable, que solicita uma senha, se configurado. Como o nome do modo sugere, este modo tem privilégios extras para permitir ...

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Shell seguro (SSH) é um protocolo de rede para seus dispositivos Cisco, que é mais seguro do que o Telenet. Definir uma senha segura é um requisito de configuração para este protocolo. Para configurar o acesso a um switch Cisco para SSH, você precisará ter uma conta de usuário criada em sua opção. O exemplo supõe que você tenha ...