Skip to content

Instantly share code, notes, and snippets.

@MoisesDuarte
Last active September 10, 2019 16:29
Show Gist options
  • Save MoisesDuarte/91077d56ffe36080f917deb994d4e3f2 to your computer and use it in GitHub Desktop.
Save MoisesDuarte/91077d56ffe36080f917deb994d4e3f2 to your computer and use it in GitHub Desktop.

Análise de Projetos Orientado a Objetos

Desenvolvimento atualmente

  • Sistemas sem setores
  • Acesso Online
  • Necessidade de criação e melhoria de padrões de desenvolvimento
  • Gerar valor (financeiro, social, educativo, etc)
  • O que é um escopo?

O que define o sucesso de um projeto?

  • Concluido dentro do prazo previsto
  • Concluido dentro do orçamento previsto
  • Ter atingido a qualidade e o desempenho desejados
  • Concluído com o minimo possível de alterações em seu escopo
  • Ter sido aceito sem restrições pelo contratante ou cliente

ISO/IEC 9162

  • Qualidade Interna (Construção)
  • Qualidade Externa (Testes)
  • Qualidade em Uso (Custo-Benefício, habilidade para operar em ambiente colaborativo)

Acurácia: O que se espera do projeto x O que o projeto entregou;

Segurança de acesso: Proteção de informações,

Qualidade Interna e Externa

  • Confiabilidade
  • Recuperabilidade
  • Usabilidade
  • Atratividade
  • Modificabilidade
  • Testabilidade

Engenharia de Requisitos

Técnicas de Levantamento de Requisitos

  • Documentação
  • Observação
  • Questionário
  • Entrevista

Níveis de descrição

  • Requisitos de usuário: serviços referentes a relação usuário-sistema, feito para leitura pelo usuário (não-técnico, informal, nas palavras do usuário);
  • Requisitos de sistema: implementação e estrutura do sistema, feito para leitura pelos colaboradores do projeto (técnico, formal, funções e requisitos internos do sistema, definido pelo desenvolvedor);

Requisitos de software

  • Requisitos funcionais: Declarações de serviços que o sistema deve fornecer (requisitos de sistema, requisitos de usuário);
  • Requisitos não-funcionais: Restrições aos serviços e funções oferecidos pelo sistema (requisitos que o usuário não visualiza, não pede, se encaixam em 3 categorias: de produto, organizacionais, externos);
    • Requisitos de produto: Especificam ou restringem o comportamento de software. Configuração mínima, de hardware e software (Placas Gráfica, Softwares, bibliotecas, internet, etc);
    • Requisitos organizacionais: Derivados das políticas e procedimentos da organização e\ou cliente. Funções restrita a determinados departamentos (consulta de boletos apenas para financeiro, etc);
    • Requisitos externos: Derivam de fatores externo ao sistema e seu processo de desenvolvimento. Normas júridicas, Nota fiscal;

Conceitos de Orientação a Objetos

Conceitos

  • Classificação: Nível do objeto (ex: admin, superadmin, convidado);
  • Abstração: Características (Atributos) e Ações (Métodos) da classe;
    • Atributos: Características do objeto (ex: codigo, nome, cor, etc);
    • Métodos: Ações exercidas pelo objeto (ex: cadastrarUsuario, consultar, etc);
  • Instância: Item de conjunto representado pela classe, com as mesmas características e comportamentos da classe (criar um novo objeto a partir de um objeto existente);

Visibilidade

  • # = Protected
  • + = Public
  • - = Private
  • ~ = Package

Tipos de associação

  • Associação Binária: Duas classes interconectadas, sem dependência uma da outra (um não depende do outro para existir, apenas uma linha simples);
  • Agregação: Um objeto todo toma informações de um objeto-parte, não necessariamente dependente (classe não depende da outra para existir, losango vazio);
  • Composição: Semelhante a agregação, mais com um vinculo mais forte, implicando em dependência (classe depende da outra para existir, losango preenchido);
  • Generalização: Ocorrência de herança de classes, agrupamento de classes e seus atributos à uma entidade todo (seta conectada à entidade-todo);

Diagramas

Diagrama de Classes

  • Objetivo: Tipos de associações de classes;
    • Associações
      • Binária:
      • Agregação: Informação do objeto-todo são complementadas pelo objeto-parte (Pessoa, PessoaJuridica, PessoaFisica);
      • Composição: Vínculo forte entre os objetos todos e objetos parte. Classe necessita da outra para existir;
      • Generalização: Mesmo conceito utilizando na associação do diagram de classes;
    • Classe Associativa: Entidade fraca;

Diagramas Casos de Uso

  • Componentes:
    • Atores: Atores são os úsuarios representados no caso de uso (ex: gerente, cliente, equipamento, outro sistema)
    • Casos de uso: Funções\ações exercidas pelos atores\usuários dentro do escopo do sistema (ex: abrirConta, sacarConta, cadastraUsuario, etc).
    • Associações: Associa um ator a uma função que ele exerce, representado por uma linha conectando ator e função;
    • Includes: Função que tem como trigger para inicialização\funcionamento outra função (ex: RealizarDeposito <> RegistraMovimento);
    • Extends: Pode incluir determinada função dependendo de seu contexto (ex: login pode rodar loginInvalido), função precisa existir para que outra possa ser efetuada;
    • Generalização: Agrupar funções\atores semelhantes em apenas uma função\ator, representada por uma seta conectando a função\ator filha(secundária) a função mãe(primária). Funções filhos recebem informações\atributos da função mãe (abrirContaEspecial e contaSalario emparelhada a função abrirContaComum);
    • Multiplicidade: Minimo e máximo de relações entre associações;

Diagrama de Objetos

  • Objetivo: Instanciar objetos, fornece uma visão dos valores armazenados pelos objetos da classe;
    • Nomeação: Nome do objeto com letra minuscula, seguida de ':' e o nome da classe qual o objeto pertence;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment