SóProvas


ID
675508
Banca
CONSULPLAN
Órgão
TSE
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

A UML define diversos tipos de relacionamentos no modelo de classe. Um desses tipos pode ser entendido pelo exemplo a seguir. Observe.

• Sejam duas classes, ALFA e BETA.

• Quando BETA herda de ALFA, os atributos e o comportamento de ALFA valem também para BETA.

• Quando for necessário, BETA pode redefinir o comportamento de ALFA.

• Além disso, BETA participa em qualquer relacionamento no qual ALFA participa.

O caso exemplificado é conhecido como relacionamento de

Alternativas
Comentários
  • Generalização é o relacionamento entre uma classe e um ou mais versões refinadas (especializadas) desta classe. A classe sendo refinada é chamada de superclasse ou classe base, enquanto que a versão refinada da classe é chamada uma subclasse ou classe derivada. Atributos e operações comuns a um grupo de classes derivadas são colocadas como atributos e operações da classe base, sendo compartilhados por cada classe derivada. Diz-se que cada classe derivada herda as características de sua classe base. Algumas vezes, generalização é chamada de relacionamento is-a (é-um), porque cada instância de uma classe derivada é também uma instância da classe base.

    Generalização e herança são transitivas, isto é, podem ser recursivamente aplicadas a um número arbitrário de níveis. Cada classe derivada não apenas herda todas as características de todos seus ancestrais como também pode acrescentar seus atributos e operações específicos.

  • A generalização é um relacionamento entre um elemento geral e um outro mais específico. O elemento mais específico possui todas as características do elemento geral e contém ainda mais particularidades. Um objeto mais específico pode ser usado como uma instância do elemento mais geral. A generalização, também chamada de herança, permite a criação de elementos especializados em outros.
  • Acredito que a questão tente induzir o candidato ao erro ja que em Java poderiamos dizer que "BETA Extends ALFA", porem é valido notar que no diagrama de classes da UML não existe o relacionamento "extensão" e sim o relacionamento GENERALIZAÇÃO que indica uma herança da classe pai para a classe filha. Bons estudos!
  • Acrescentando o comentário do colega Tiago Melquiades, vale lembra que em UML existe a extensão, porém, ela é usada no diagrama de caso de uso para indicar possibilidade de um caso de uso utilizar outro caso de uso.


    Por fim, a dica é: Em UML herança = GENERALIZAÇÃO (e não extensão).

  • Um caso de uso pai pode ser especializado em um ou mais casos de uso filho que representam formas mais específicas do pai. Nem o pai, nem o filho são necessariamente abstratos, embora o pai seja abstrato na maioria dos casos. Um filho herda a estrutura, o comportamento e os relacionamentos do pai. Todos os filhos do mesmo pai são especializações do pai. Essa é a maneira que a generalização se aplica aos casos de uso.

     

    A generalização é usada quando você encontra dois ou mais casos de uso que têm comportamento, estrutura e finalidade comuns. Quando isso ocorre, você pode descrever as partes compartilhadas em um caso de uso novo, geralmente abstrato, que é especializado pelos casos de uso filho.

  • Quando se fala a palavra herda é herança, e em UML herança é demonstrada com o relacionamento de Generalização(Especialização), não precisa nem ler esse texto todo. 

    Alguém me corrige se falei besteira, sabe lá né.