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.