UML_OO - Juliana Jenny

Download Report

Transcript UML_OO - Juliana Jenny

As ferramentas de modelagem de dados
fornece ao engenheiro de software a
habilidade de modelar todos os elementos de
um sistema baseado em computador.




Describe (www.embarcadeiro)
Rational XDE e Rose (www.rational.com)
Real-Time Studio (www.artisanw.com)
Telelogic Tau (www.telelogic.com)
Juliana Jenny Kolb


Uma classe representa uma categoria e os
objetos os membros ou exemplos desta
categoria.
Uma classe é representada por um retângulo
que pode possuir até três divisões:
Nome da Classe
Carro
Atributos
Cor
Métodos
Transportar Pessoas()
Juliana Jenny Kolb
Características de uma classe.
Atividade que um objeto de uma classe
pode executar

Visibilidade:
◦ Pública: (+), significa que o atributo ou método
pode ser utilizado por qualquer classe;
◦ Protegida: (#), determina que somente a classe
possuidora do atributo ou método ou suas subclasses podem ter acesso ao mesmo;
◦ Privado: (-), significa que somente a classe
possuidora do atributo ou método poderá utilizálo.
Juliana Jenny Kolb

Herança:
◦ Permite o reaproveitamento de atributos e de
métodos;
◦ Trabalha com o conceito de superclasses (classe
mãe) e sub-classes (classe filha);
◦ As sub-classes herdam da superclasse suas
características (atributos e métodos);
Animal
+Locomove()
Juliana Jenny Kolb
Mamífero
Ave
+Mamar()
+PorOvo()

Polimorfismo:
◦ Está associado à Herança;
◦ Trabalha com a redeclaração de métodos
previamente herdados por uma classe, estes
métodos, embora semelhantes, diferem de alguma
forma da implementação da superclasse;
◦ Declara-se o método com o mesmo nome
declarado na superclasse;
Juliana Jenny Kolb

Polimorfismo:
◦ Exemplo:
Conta Comum
#Cod: long
#Saldo: long
+Abertura(Cod:long)
Conta Especial
#Limite: double
+Abertura(Cod:long,
Limite:double
Juliana Jenny Kolb
Conta Poupança
+Rendimento (Data: date)

Encapsulamento:
◦ Significa separar o programa em partes, o mais isoladas
possível. A idéia é tornar o software mais flexível, fácil de
modificar e de criar novas implementações.
◦ Vantagem: toda parte encapsulada pode ser modificada sem
que os usuários da classe em questão sejam afetados.
◦ Protege o acesso direto (referência) aos atributos de uma
instância fora da classe onde estes foram declarados. Esta
proteção consiste em se usar modificadores de acesso mais
restritivos sobre os atributos definidos na classe. Depois
devem ser criados métodos para manipular de forma indireta
os atributos da classe.
◦ Encapsular atributos também auxilia a garantir que o estado e
o comportamento de um objeto se mantenha coeso.
Juliana Jenny Kolb
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Diagrama de
Juliana Jenny Kolb
Caso de Uso;
Classe;
Objetos;
Estrutura Composta;
Sequencia;
Colaboração (Comunicação);
Estados;
Atividades;
Componentes;
Implantação (Deployment);
Pacotes;
Tempo;
Estrutural
Estático
Comportamental
Dinâmico
x
Diagrama de Caso de Uso;
Diagrama de Classe;
x
Diagrama de Objetos;
x
Diagrama de Estrutura Composta;
x
Diagrama de Seqüência;
x
Diagrama de Colaboração
(Comunicação);
x
Diagrama de Estados;
x
Diagrama de Atividades;
x
Diagrama de Componentes;
x
Diagrama de Implantação
(Deployment);
x
Diagrama de Pacotes;
x
Diagrama de Tempo;
x
Juliana Jenny Kolb
Visão geral do comportamento do sistema;
 Utilizado principalmente no início da modelagem
do sistema, nas etapas de levantamento e análise
de requisitos;
 Objetivo: apresentar uma visão geral das funções e
serviços que o sistema deverá oferecer aos
usuários, sem se preocupar como essas funções
serão implementadas;
 Identifica os tipos de usuários que irão interagir
com o sistema, quais papéis esses usuários irão
assumir e quais funções serão requisitadas por
cada um;
Juliana Jenny Kolb









1.1. Atores (Pessoas, equipamento, sistemas);
1.2. Casos de Uso (serviços, tarefas ou funções);
1.3. Documentação;
Relacionamentos:
1.4. Associações;
1.5. Especialização / Generalização;
1.6. Inclusão;
1.7. Extensão;
Juliana Jenny Kolb

1.4. Associações:
◦ Interações entre:
 Atores;
 Atores e Casos de Uso;
 Casos de Uso e outro Caso de Uso;
◦ Relacionamento entre Casos de Uso recebem nomes
especiais: Inclusão, Extensão e Generalização;
Abertura
de Conta
Cliente
Juliana Jenny Kolb
•Pode ocorrer que as extremidades da
reta tenham setas, apontando a
navegabilidade da associação.
•Se não tiver, as informações
navegam em ambas as direções.
•Pode ter uma descrição própria.

1.5. Especialização/Generalização:
◦ Utilizado em Heranças e Polimorfismos;
◦ Também pode ser usada com atores;
Conta Comum
Conta Especial
Juliana Jenny Kolb
Conta Poupança

1.6. Inclusão
◦ Utilizada quando existe um serviço situação ou rotina
comum a mais de um Caso de Uso;
◦ Indicam obrigatoriedade, a execução do primeiro obriga a
execução do segundo;
◦ A seta indica o Caso de Uso incluído.
Saque
Depósito
Juliana Jenny Kolb
<<include>>
Registrar
Movimento
<<include>>

1.6. Extensão
◦ Utilizada para descrever cenários opcionais;
Encerrar
Conta
<<extend>>
<<extend>>
Depósito
Saque
Juliana Jenny Kolb
<<include>>
<<
<<extend>>
<<extend>>
Juliana Jenny Kolb
Herança
<<include>>
Sub-Classes
Herança
<<
<<extend>>
<<extend>>
<<extend>>
Superclasse
<<include>>
Juliana Jenny Kolb



Relacionamentos:
2.1. Associações;
◦ Agregação;
◦ Composição;
◦ Dependência;
2.2. Especialização / Generalização;
Juliana Jenny Kolb

2.1. Associações:
◦ Agregação:
 É uma forma especializada de associação na qual um todo é
relacionado com suas partes. Também conhecida como relação
de conteúdo.
 É representada como uma linha de associação com um
diamante junto à Classe agregadora.
 Indica que uma das classes do relacionamento é uma parte, ou
está contida em outra classe. As palavras chaves usadas para
identificar uma agregação são: "consiste em", "contém", "é parte
de".
Marinha
Navio
Juliana Jenny Kolb

2.1. Associações:
◦ Composição:
 É uma agregação onde uma classe que está contida na outra
"vive" e constitui a outra. Se o objeto da classe que contém for
destruído, as classes da agregação de composição serão
destruídas juntamente, já que as mesmas fazem parte da outra.
 É representada como uma linha de associação com um
diamante preenchido junto à Classe agregadora.
Revista
Juliana Jenny Kolb
Edição

2.1. Associações:
◦ Dependência:
 Uma dependência indica a ocorrência de um relacionamento
semântico entre dois ou mais elementos do modelo, onde uma
classe cliente é dependente de alguns serviços da classe
fornecedora.
 Por exemplo: Uma mudança no elemento independente irá
afetar o modelo dependente.
 Por exemplo: Uma mudança no elemento independente irá
afetar o modelo dependente.
Sistema
Juliana Jenny Kolb
Pessoa



Diagrama mais importante e utilizado da UML;
Serve de apoio para a maioria dos outros diagramas;
Define a estrutura das classes utilizadas pelo sistema, determinando
os atributos e métodos possuídos por cada classe, além de
estabelecer como as classes se relacionam e trocam informações
entre si.
Agregação
Herança ?
Polimorfismo ?
Juliana Jenny Kolb



Preocupa-se com a ordem temporal em que as mensagens são
trocadas entre os objetos envolvidos em um determinado processo;
Em geral, baseia-se em um Caso de Uso e apóia-se no Diagrama de
Classes para determinar os objetos das classes envolvidas;
Determina como o processo deve se desenrolar e ser concluído por
meio da chamada de métodos disparados por mensagens enviadas
entre os objetos;
Juliana Jenny Kolb



Procura acompanhar as mudanças sofridas por um objeto dentro de
um determinado processo;
Em geral, baseia-se em um Caso de Uso e apóia-se no Diagrama de
Classes para determinar os objetos das classes envolvidas;
Utilizado para acompanhar os estados por que se passa uma
instância de uma classe ou para representar os estados de um caso
de uso ou mesmo estados gerais de um sub-sistema.
Juliana Jenny Kolb



Preocupa-se em descrever os passos a
serem percorridos para a conclusão de
uma atividade específica;
Geralmente representa um método com
um certo grau de complexidade;
Concentra-se na representação do
fluxo de controle de uma atividade.
Juliana Jenny Kolb


Determina as necessidades de hardware do sistema, as características
físicas como servidores, estações, topologias e protocolos de
comunicação;
Esta bastante associado ao Diagrama de Componentes.
Juliana Jenny Kolb
1. Assinale a alternativa que caracteriza uma classe: (Copel,2009)
a) Ações realizadas por um objeto
b) Herda todos os comportamentos e estados possíveis de outra classe.
c) Vínculo que permite que objetos se relacionem.
d) Estrutura que abstrai um conjunto de objetos com características similares.
X
e) Elemento que define a estrutura de um objeto.
2. A Unified Modeling Language (UML) é uma linguagem de modelagem cujos
objetivos são: especificação, documentação e estruturação para a visualização
lógica do desenvolvimento completo de um sistema de informação. Ela possui
vários diagramas e o diagrama responsável por representar a estrutura e as
relações e que serve como base para os demais diagramas é denominado
diagrama de: (Copel,2009)
a) objetos.
b) interação.
c) transição.
d) atividade.
e) classe.
X
Juliana Jenny Kolb
3. Princípio da programação orientada a objetos que permite que as classes
compartilhem atributos e operações baseados em um relacionamento.
(Copel,2009)
a) Polimorfismo
b) Encapsulamento
c) Abstração
d) Herança
X
e) Classe
4. Em uma análise orientada a objetos, é comum o uso de UML para modelar o
sistema. O diagrama que dá ênfase a ordenação temporal em que as mensagens
são trocadas entre os objetos de um sistema. Entende-se por mensagens os
serviços solicitados de um objeto a outro, e as respostas desenvolvidas para as
solicitações. Essas são características do diagrama: (Copel,2009)
a) Diagrama de objetos
b) Diagrama de componentes
c) Diagrama de Caso de Uso
d) Diagrama de sequência
X
e) Diagrama de atividade.
Juliana Jenny Kolb
5. O mecanismo que possibilita restringir o acesso ao comportamento interno de um
objeto é denominado (ANA,2009)
a) encapsulamento.
X
b) herança.
c) polimorfismo.
d) atributo.
e) método.
6. Em UML, o relacionamento utilizado para expressar herança entre classes e
interfaces é a (ANA,2009)
a) multiplicidade.
b) dependência.
c) agregação.
d) associação.
e) generalização.
X
Juliana Jenny Kolb
7. A restrição UML aplicada a um conjunto de generalizações, especificando que uma
instância pode ter apenas um dos subtipos determinados como tipo daquela
instância, é conhecida como (ANA, 2009)
a) Associação.
b) Auto.
c) Global.
d) Local.
e) Disjunção.
X
8. Na linguagem de modelagem unificada (UML), existem diagramas que descrevem
situações do ponto de vista dinâmico ou comportamental, e diagramas que
descrevem situações do ponto de vista estático. Acerca desse assunto, julgue os
itens subseqüentes.
V
Entre os diagramas comportamentais incluem-se os de atividade, os de seqüência,
os de comunicação e os de tempo.
V
Entre os diagramas estáticos incluem-se os de classes, os de estrutura, os de
pacotes e os de objetos.
Juliana Jenny Kolb
9. Uma classe ClasseA de determinada aplicação possuía um método calculeAlgo()
em que testes (instruções de desvio condicional) eram utilizados para se
determinar que algoritmo deveria ser adotado para efetuar o cálculo. Foi criada
uma nova hierarquia de classes, iniciando na classe abstrata ClasseB, que declara
o método abstrato calcule(). Este método é implementado por cada classe concreta
da hierarquia, sendo cada uma delas correspondente a um dos algoritmos
previstos no método calculeAlgo() original. ClasseA passou a ter um atributo do
tipo ClasseB e métodos de acesso ao mesmo, e calculeAlgo() teve seu código
substituído por uma simples chamada ao método calcule() do objeto armazenado
no novo atributo. O conceito OO (Orientação a Objetos) predominante na
descrição acima é a(o)
(A) sobrecarga de atributo.
(B) sobrecarga de método.
(C) herança múltipla.
(D)
X polimorfismo.
(E) acesso externo direto a atributo.
10. Um exemplo de diagrama previsto na UML é o Diagrama de
(A) Fluxo de Dados.
(B) Entidades e Relacionamentos.
(C)
X Atividade.
(D) Gantt.
Juliana Jenny Kolb
(E) Causa e Efeito.
11. Um caso de uso (use case) pode ser representado por:
a) uma elipse.
X
b) um retângulo.
c) um quadrado.
d) um triângulo.
12. Qual a linguagem mais expressiva para a modelagem de sistemas orientados a
objetos:
a) SQL.
b) MER.
c) DFD.
d) UML.
X
13. Assinale a melhor definição abaixo para Diagrama de Classe:
a) é a representação da estrutura dos objetos e suas heranças.
b) é a representação das relações das classes e suas agregações.
c) é a representação da estrutura e relações das classes.
X
d) é a representação das relações das instâncias e suas heranças.
Juliana Jenny Kolb
14. A herança, na notação UML, é mostrada no sentido:
a) ascendente, ou seja, da classe que herda atributos e operações para as classes
X
superiores.
b) descendente, ou seja, da classe que herda atributos e operações para as classes
inferiores.
c) à direita, ou seja, da classe que herda atributos e operações para as classes a sua
direita.
d) à esquerda, ou seja, da classe que herda atributos e operações para as classes a
sua esquerda.
15. O diagrama UML mais indicado para representar o passo a passo do fluxo de
eventos principal de um caso de uso de um software orientado a objetos é o
diagrama de
(A) casos de uso.
(B)
X atividades.
(C) eventos e transições.
(D) classes.
(E) componentes.
Juliana Jenny Kolb
16. Considere o relacionamento de “todo-parte” ilustrado no diagrama UML abaixo. É
correto afirmar que
(A) um objeto da classe InfoCliente pode participar de mais de um relacionamento de
composição desempenhando o papel de “parte”.
(B) um objeto da classe ItemPedido pode participar de mais de um relacionamento de
composição desempenhando o papel de “parte”.
(C) uma instância da classe InfoCliente pode existir antes mesmo que a instância da
classe Pedido com que se relacionará tenha sido criada.
(D) o relacionamento ilustrado acima é ternário.
(E) a cardinalidade do pedido no relacionamento com ItemPedido igual a 1 não
X
precisaria ser apresentada, uma vez que não poderia assumir outro valor.
Juliana Jenny Kolb
17. Valendo-se dos conceitos de Orientação a Objetos, complete a frase abaixo e
assinale a alternativa correspondente:
Sabendo-se que “Mesa” é uma Classe muito maior de Objetos, à qual
denominamos “Mobiliário”, pode-se afirmar que “Mesa” ___________ todos os
atributos definidos para “Mobiliário”.
Assinale a alternativa que completa corretamente a frase anterior:
A) Copia
B) Absorve
C) Herda
X
D) Jamais possuirá
E) É um Use-Case (caso de uso) de
18. Em qual dos diagramas empregados pela UML a modelagem do diagrama é uma
técnica usada para descrever e definir os requisitos funcionais de um sistema?
A) Classes.
B) Objetos.
C) Use-case.
X
D) Estado.
E) Colaboração.
Juliana Jenny Kolb
19. Como é denominado o relacionamento entre um elemento geral e outro
específico em que o elemento mais específico possui (adquire) todas as
características do elemento geral e ainda contém outras particularidades?
A) Associação.
B) Pacotes.
C) Dependência e refinamento.
D) Generalização.
X
E) Controle de Classes.
20. Na UML, entidades externas ao sistema são chamadas de:
A) Classes.
B) Pacotes.
C) Objetos.
D) Atores Externos ou simplesmente Atores.
X
E) Visões ou simplesmente Visões.
Juliana Jenny Kolb
21. A Linguagem de Modelagem Unificada (UML) apresenta os conceitos de caso de
uso base e os relacionamentos de include e extend, bem como a sintaxe associada
a cada um desses conceitos. Analise o diagrama de caso de uso a seguir:
(CELEPAR, 2009).
a) O caso de Uso A é chamado de Caso de Uso base. Existe um relacionamento include entre os
Casos de Uso A e C e um relacionamento extend entre os Casos de Uso A e B.
b) Os casos de Uso B e C são chamados de Caso de Uso base. Existe um relacionamento include
entre os Casos de Uso B e A e um relacionamento extend entre os Casos de Uso C e A.
c) O caso de Uso A é chamado de Caso de Uso base. Existe um relacionamento include entre os
Casos de Uso A e C e entre os Casos de Uso A e B.
d) O caso de Uso A é chamado de Caso de Uso base. Existe um relacionamento include entre os
Casos de Uso A e B e um relacionamento extend entre os Casos de Uso A e C.
e) O caso de Uso A é chamado de Caso de Uso base. Existe um relacionamento extend entre os
Casos de Uso A e C e entre os Casos de Uso A e B.
X
Juliana Jenny Kolb
22. É um diagrama definido pela Linguagem de Modelagem Unificada (UML) e
complementa o caso de uso fornecendo uma representação gráfica do fluxo de
interação em um cenário específico. Em outras palavras, representa os fluxos
conduzidos por processamentos. Assinale a alternativa que indica o diagrama UML
descrito anteriormente. (CELEPAR, 2009).
a) Diagrama de Sequência.
b) Diagrama de Comunicação.
c) Diagrama de Transição de Estados.
d) Diagrama de Classes.
e) Diagrama de Atividade.
X
23. Uma das vantagens dos métodos de análise e projeto orientado a objetos é o
aumento do gap conceitual entre os artefatos produzidos nas fases de análise,
F projeto e implementação. (SERPRO, 2005)
Juliana Jenny Kolb
24. Objetos são instâncias de classes que determinam qual informação um objeto
contém e como ele pode manipular essa informação.
Sobre Orientação a Objetos é correto afirmar: (CELEPAR, 2009)
I. Herança é um mecanismo que permite que características comuns a diversas classes sejam
fatoradas em uma superclasse. A partir de uma classe base, outras classes podem ser
especificadas. Cada subclasse apresenta as características (estrutura e métodos) da classe
base, acrescidas do que for definido de particularidade para ela.
II. Atributos são características de um objeto, basicamente a estrutura de dados que vai
representar a classe. Métodos definem as habilidades dos objetos.
III. Encapsulamento é o princípio pelo qual duas ou mais classes derivadas de uma mesma
superclasse podem invocar métodos que têm a mesma identificação (assinatura), mas
comportamentos distintos, especializados para cada classe derivada, usando para tanto uma
referência a um objeto do tipo da superclasse.
IV. Polimorfismo consiste na separação de aspectos internos e externos de um objeto. Este
mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus
atributos), disponibilizando externamente apenas os métodos que alteram estes estados.
a) Somente as afirmativas I e II são corretas.
b) Somente as afirmativas I e IV são corretas.
c) Somente as afirmativas III e IV são corretas.
d) Somente as afirmativas I, II e III são corretas.
e) Somente as afirmativas II, III e IV são corretas.
X
Juliana Jenny Kolb
25. Analise o Diagrama de Caso de Uso a seguir:
(CELEPAR, 2009)
Com base na análise feita, considere F (falso) ou V
(verdadeiro) para as seguintes afirmativas:
( ) Os Casos de Uso 3 e 4 são Casos de Uso
generalizados do Caso de Uso 2 por meio de uma
herança de Caso de Uso.
( ) Tanto o Ator A como o Ator C iniciam o Caso de
Uso 1.
( ) O Ator A dispara o Caso de Uso 2.
( ) O Caso de Uso 6 é um caso de uso obrigatório.
( ) O Ator B dispara o Caso de Uso 1.
Assinale a alternativa que contém, de cima para
baixo, a sequência correta.
a) F, F, V, F e V.
b) F, V, F, V e F.
c) F, V, V, F e V.
d) V, F, F, V e V.
X
e) V, F, V, F e F.
Juliana Jenny Kolb
26. Dado o esboço do diagrama de classe a seguir, os números 1 e 2 significam,
respectivamente: (CELEPAR, 2009 )
a) Agregação e Composição.
X
b) Composição e Agregação.
c) Herança simples e Herança múltipla.
d) Associação e Generalização.
e) Composição e Dependência.
Juliana Jenny Kolb
27. Um método é uma notação ou conjunto de notações suportadas por um
processo que guia a aplicação das notações. Nesse sentido, é correto afirmar que
F a UML (unified modeling language) é um método de desenvolvimento orientado a
objetos. (SERPRO, 2005)
28. A UML formalizou um conjunto de conceitos composto por elementos (classes,
interfaces e componentes), relacionamentos (associação, generalização e
V dependências) e tipos de diagramas, que permitiu a unificação nos modelos de
diagramas usados nas metodologias de análise tradicional, análise estruturada e
análise essencial, facilitando o uso de ferramentas visuais e interoperáveis para
desenvolvimento de software. (SERPRO, 2005)
29. A UML incorpora uma linguagem de especificação formal e textual chamada Z.
(SERPRO, 2005)
F
30. Com o advento da UML, o uso dos termos modelagem funcional e modelagem
de dados foi substituído pelo uso dos termos modelagem estrutural e
F modelagem comportamental, respectivamente. Diagramas UML que permitem a
expressão de propriedades comportamentais são os de classe, de componente e
de instalação. Diagramas UML estruturais são os de colaboração e de estados.
(SERPRO, 2005)
Juliana Jenny Kolb