460 likes | 636 Views
Orientação Objeto – UML (introdução básica). As ferramentas de modelagem de dados fornece ao engenheiro de software a habilidade de modelar todos os elementos de um sistema baseado em computador. Ferramentas baseadas em OO e UML. Describe ( www.embarcadeiro )
E N D
Orientação Objeto – UML (introdução básica) As ferramentas de modelagem de dados fornece ao engenheiro de software a habilidade de modelar todos os elementos de um sistema baseado em computador.
Ferramentas baseadas em OO e UML • Describe (www.embarcadeiro) • Rational XDE e Rose (www.rational.com) • Real-Time Studio (www.artisanw.com) • TelelogicTau (www.telelogic.com) Juliana JennyKolb
Classes de Objetos • 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 Características de uma classe. Atividade que um objeto de uma classe pode executar Métodos Transportar Pessoas() Juliana JennyKolb
Classes de Objetos • 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 sub-classes podem ter acesso ao mesmo; • Privado: (-), significa que somente a classe possuidora do atributo ou método poderá utilizá-lo. Juliana JennyKolb
Classes de Objetos • 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() Mamífero Ave +Mamar() +PorOvo() Juliana JennyKolb
Classes de Objetos • 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 JennyKolb
Classes de Objetos • Polimorfismo: • Exemplo: Conta Comum #Cod: long #Saldo: long +Abertura(Cod:long) Conta Especial Conta Poupança #Limite: double +Rendimento (Data: date) +Abertura(Cod:long, Limite:double Juliana JennyKolb
Classes de Objetos • 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 JennyKolb
Diagramas • Diagrama de Caso de Uso; • Diagrama de Classe; • Diagrama de Objetos; • Diagrama de Estrutura Composta; • Diagrama de Sequencia; • Diagrama de Colaboração (Comunicação); • Diagrama de Estados; • Diagrama de Atividades; • Diagrama de Componentes; • Diagrama de Implantação (Deployment); • Diagrama de Pacotes; • Diagrama de Tempo; Juliana JennyKolb
1. Diagrama de Caso de Uso • 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 JennyKolb
1. Diagrama de Caso de Uso • 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 JennyKolb
1. Diagrama de Caso de Uso • 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; • 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. Abertura de Conta Cliente Juliana JennyKolb
1. Diagrama de Caso de Uso • 1.5. Especialização/Generalização: • Utilizado em Heranças e Polimorfismos; • Também pode ser usada com atores; Conta Comum Conta Especial Conta Poupança Juliana JennyKolb
1. Diagrama de Caso de Uso • 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 <<include>> Registrar Movimento Depósito <<include>> Juliana JennyKolb
1. Diagrama de Caso de Uso • 1.6. Extensão • Utilizada para descrever cenários opcionais; Encerrar Conta <<extend>> <<extend>> Depósito Saque Juliana JennyKolb
Exemplos <<include>> << <<extend>> <<extend>> Juliana JennyKolb
Exemplos Herança <<include>> Sub-Classes Herança << <<extend>> <<extend>> <<extend>> Superclasse <<include>> Juliana JennyKolb
2. Diagrama de Classes • Relacionamentos: • 2.1. Associações; • Agregação; • Composição; • Dependência; • 2.2. Especialização / Generalização; Juliana JennyKolb
2. Diagrama de Classes • 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 JennyKolb
2. Diagrama de Classes • 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 Edição Juliana JennyKolb
2. Diagrama de Classes • 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 Pessoa Juliana JennyKolb
2. Diagrama de Classes • 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 JennyKolb
5. Diagrama de Sequência • 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 JennyKolb
7. Diagrama de Estados • 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 JennyKolb
8. Diagrama de Atividades • 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 JennyKolb
10. Diagrama de Implantação (deployment) • 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 JennyKolb
Questões 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. e) Elemento que define a estrutura de um objeto. 2. A UnifiedModelingLanguage (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 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 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 e) Diagrama de atividade. X X Juliana Jenny Kolb
X 5. O mecanismo que possibilita restringir o acesso ao comportamento interno de um objeto é denominado (ANA,2009) a) encapsulamento. 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. 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. Entre os diagramas comportamentais incluem-se os de atividade, os de seqüência, os de comunicação e os de tempo. Entre os diagramas estáticos incluem-se os de classes, os de estrutura, os de pacotes e os de objetos. X V V 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) 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) Atividade. (D) Gantt. (E) Causa e Efeito. X X Juliana Jenny Kolb
X 11. Um caso de uso (use case) pode ser representado por: a) uma elipse. 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. 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. d) é a representação das relações das instâncias e suas heranças. X X Juliana Jenny Kolb
X 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 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) atividades. (C) eventos e transições. (D) classes. (E) componentes. X 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 precisaria ser apresentada, uma vez que não poderia assumir outro valor. X 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 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. D) Estado. E) Colaboração. X X 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. 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. E) Visões ou simplesmente Visões. X X 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. 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, projeto e implementação. (SERPRO, 2005) X F 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. e) V, F, V, F e F. X 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. 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. X Juliana Jenny Kolb
F 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 a UML (unifiedmodelinglanguage) é 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 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) 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 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) V F F Juliana Jenny Kolb