Guia de UML e Programação Orientada a Objetos

Classificado em Computação

Escrito em em português com um tamanho de 11,01 KB

Gerenciamento de Projeto e Fundamentos da UML

Nome do Caso de Uso: Realizar Gerenciamento de Projeto

Objetivo: O usuário cadastra as atividades que compõem as fases de um projeto.

Fluxo Principal, Fluxo Alternativo 1, Fluxo Alternativo 2:

O que é UML?

A UML (Unified Modeling Language), que se traduz por Linguagem de Modelagem Unificada, é uma linguagem gráfica padrão destinada à especificação, à construção, à visualização e à documentação de um sistema complexo de software.

Quem são os criadores da UML?

Foi desenvolvida por Grady Booch, James Rumbaugh e Ivar Jacobson, que são conhecidos como “os três amigos”.

Quais são os objetivos da UML?

A modelagem de sistemas.

Onde se pode utilizar a UML?

Ela abrange sempre qualquer característica de um sistema em um de seus diagramas e é também aplicada em diferentes fases do desenvolvimento de um sistema, desde a especificação da análise de requisitos até a finalização com a fase de testes. O objetivo da UML é descrever qualquer tipo de sistema em termos de diagramas orientados a objetos.

Quais são os diagramas que compõem a UML?

  • Casos de Uso
  • Classes
  • Estados
  • Sequência
  • Colaboração
  • Atividade
  • Implantação

O que é Ator?

Representa qualquer entidade que interage com o sistema ou módulo representado. Pode ser uma pessoa, sistema, etc.

O que é Caso de Uso?

É uma sequência de ações que o sistema executa e produz um resultado de valor para o ator. Características:

  • Representam um conjunto de atividades que o sistema desempenha (visão externa);
  • Servem para atender a um objetivo do ator;
  • Possuem uma descrição textual adicional;
  • Geram cenários;
  • São documentados textualmente;
  • Os Casos de Uso oferecem uma notação simples;
  • Podem ser utilizados como uma especificação;
  • Levados à validação dos usuários;
  • Utilizados como ferramenta de controle gerencial.

Para que serve um Diagrama de Casos de Uso?

Usado para descrever cenários de integração entre elementos externos e o sistema. Também serve para ilustrar os requisitos funcionais de um sistema.

Quais as características de um ator?

  • Ator não é parte do sistema;
  • Representa papéis que o usuário tem dentro do sistema;
  • Pode interagir ativamente com o sistema;
  • Pode ser um receptor passivo de informação;
  • Pode representar um ser humano, máquina ou outro sistema;
  • É alguém que recebe informações do sistema;
  • É alguém que fornece informações ao sistema.

Quais são as aplicações dos Casos de Uso?

Na fase de análise:

  • Para levantar requisitos;
  • Para identificar classes;
  • Para definir fronteira.

Na fase de projeto:

  • Para definir a dinâmica (visível) do sistema;
  • Para estabelecer responsabilidades dos sistemas.

Para testar o sistema:

Os casos de uso servem de roteiro de testes do sistema completo.

O que é um cenário?

  • Instância (é uma ocorrência) de casos de uso;
  • Um caminho único em caso de uso;
  • Um fluxo de informação (início, processamento e fim);
  • Um fluxo relacionado com objetivo do ator;
  • Pode ser otimista, pessimista ou alternativo.

É permitido o relacionamento direto entre Casos de Uso?

Um Use Case não pode relacionar-se diretamente com outro Use Case. Somente um ou mais atores é que podem. No entanto, existem relações formais como Uses ou Include e Extends.

O que é agrupamento de Caso de Uso?

Um conjunto de Use Cases pode ser agrupado num único Use Case. Isso depende exclusivamente do analista, não há uma regra formal para essa situação.

O que é Generalização?

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.

O que é Modelo de Classes?

Representa as características estáticas (estruturas) e dinâmicas dos objetos do mundo real, apresentando um papel fundamental como componente básico de todas as metodologias OO, concentrando ainda a especificação dos elementos essenciais para a implementação de um sistema Orientado a Objetos.

Para que serve o Modelo de Classes?

Ele descreve os tipos de objeto que fazem parte do sistema e os diversos tipos de relacionamentos estruturais (estáticos) que existem entre eles, incorporando também a especificação dos atributos e das operações, que definem a estrutura e o comportamento dos objetos.

Definições de Objeto e Classe

Defina Objeto: Objeto é algo do mundo real, distinguível e que possui um significado relevante dentro da realidade em análise.

Dê 5 exemplos de objetos: GM Monza SL cinza CHV2855, João da Silva, Drogaria São Paulo Unidade Jabaquara, Cavalo pangaré, faca de aço inoxidável.

Defina Classe: É uma descrição de um conjunto de objetos que partilham os mesmos atributos, operações, relações e semântica.

Defina Atributo de Classe: É a propriedade da classe, como por exemplo: nome, altura, idade, etc.

Defina Operação de Classe: É a ação que a classe executa, como por exemplo: a classe cachorro tem a operação ou método latir().

Visibilidade e Estereótipos

Quais são as visibilidades possíveis para um Atributo de Classe?

  • (-) Privativo;
  • (+) Público;
  • (#) Protegido.

O que são Estereótipos? São elementos de modelagem que rotulam tipos de classes de objeto. Uma classe de objetos pode ter um ou mais tipos de estereótipos. Os mais comuns são: Classes Entidade, Classes de Controle e Classes Limítrofes (de fronteira).

Relacionamentos e Composição

O que é Relacionamento? São as afinidades que as classes têm umas com as outras.

Defina Associação: É uma relação que permite especificar que objetos de uma dada classe se relacionam com objetos de outra classe.

O que é Agregação? Representam a noção de composição e apenas têm sentido em associações “um para muitos” e, mais raramente, em associações “muitos para muitos”.

O que é Composição? O objeto parte pertence somente a um todo; qualquer remoção do todo tem efeito cascata nas partes.

Conceitos Avançados de OO

Defina Generalização: É uma relação que permite representar a noção de pertença ou especialização. Uma classe representa um conjunto de objetos que partilham um conjunto comum de atributos.

Defina Operação: É um serviço que uma classe oferece; é uma responsabilidade da classe. Um método é uma implementação da operação.

Defina Polimorfismo: Característica pela qual uma mesma operação é implementada de forma diferente em diferentes classes; a implementação depende do tipo de objeto onde a operação é aplicada.

O que é Classe Persistente? Correspondem às entidades do domínio do problema; representam a estrutura e o comportamento de objetos concretos, fatos ou conceitos do mundo real. São tipicamente passivas.

O que é Classe Abstrata? É uma classe que não tem objetos, ou seja, não possui instâncias diretas; suas subclasses é que possuem.

Defina Interface: Uma interface pura é uma classe sem implementação; possui a declaração das operações, mas sem o corpo dos métodos e sem atributos.

Conceitos de Sistemas de Informação

Sistema: Um conjunto de entidades relacionadas que interagem entre si, buscando atingir um objetivo declarado e outros correlatos.

Sistema de Informação: É uma série de elementos ou componentes inter-relacionados que coletam (entrada), manipulam e armazenam (processo), disseminam (saída) os dados e informações e fornecem um mecanismo de feedback.

Entropia: É a tendência que os sistemas têm para o desgaste, para a desintegração, para o afrouxamento dos padrões e para um aumento da aleatoriedade. A entropia aumenta com o decorrer do tempo.

Homeostasia: É o equilíbrio dinâmico entre as partes do sistema. Os sistemas têm uma tendência a se adaptarem a fim de alcançarem um equilíbrio interno em face das mudanças externas.

Elementos do Sistema de Informação

  • Entrada: Tudo o que o sistema recebe do ambiente para executar suas tarefas.
  • Processamento: É a execução das atividades de um sistema.
  • Saídas: É tudo o que um sistema devolve ao ambiente.
  • Feedback: São os mecanismos que verificam se as saídas estão fazendo com que o sistema alcance seus objetivos.
  • Objetivos: É o que esperamos conseguir com nosso sistema.
  • Ambiente: É onde nosso sistema está atuando.

Programação Orientada a Objetos e Manutenção

Programação Orientada a Objetos é uma metodologia de desenvolvimento de software. Sua principal vantagem é a proximidade com a forma que os seres humanos visualizam o mundo. Tem como objetivo facilitar a modelagem através da interação entre objetos.

  • Uma classe é uma abstração que define um tipo de objeto, seus atributos e métodos.
  • Um objeto é qualquer entidade que apresenta atributos e/ou métodos.
  • Os atributos definem o estado interno de um objeto.
  • Mensagem consiste em uma requisição, onde o objeto requisitante (sender) envia uma solicitação ao objeto requisitado (receiver).
  • Instância significa a implementação ou materialização de uma classe através de um objeto.
  • Encapsulamento é o mecanismo utilizado para disponibilizar métodos, protegendo o acesso direto indevido aos atributos.
  • Polimorfismo é a capacidade de um método base, herdado de uma superclasse, assumir várias formas na subclasse.
  • Manutenção: É dispendiosa e consome tantos recursos quanto o desenvolvimento, representando por volta de 40-60% do custo total de um projeto.

Entradas relacionadas: