O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Software

Ivan Filho Português

Mapa mental sobre software: modelagem, engenharia reversa, linguagens e coesão

Mapa mental: Software

Conteúdo do mapa

Software

  1. Modelagem

    • Uml
      • Diagrama caso de uso
        • Identificação de atores e serviços
      • Diagrama de Classes
        • Definição da estrutura e das classes
      • Diagrama de objeto
        • Mostrar valores armazenados pelo objeto
      • Diagrama de Estrutura Composta
        • Visões de um conjunto de entidades
      • Diagrama de Sequência
        • Desenrolar dos eventos
      • Diagrama de Comunicação
        • mostrar como objetos estão interligados e mensagens trocadas sem preocupação de tempo
      • Diagrama Máquina de Estado
        • Informar mudança de Estado a partir de uma instancia
      • Diagrama de Atividades
        • Comportamento de objetos entre vários casos de uso
      • Diagrama de Interação
        • Comportamentos de objetos entr eum uníco caso de uso
      • Diagrama de Componentes
        • Demonstrar componentes que fazer parte do sistema e seus relacionamentos
      • Diagrama de Implantação
        • Necessidades físicas do sistema
      • Diagrama de Pacotes
        • Decompõe o sistema geral em subsistemas que o compõe
      • Diagrama de Tempo
        • Indica mudança de estado do objeto e o tempo de resposta da mudança
  2. Remodelagem

    • Reengenharia
      • Recriar um sistema já projetado
  3. Engenharia Reversa

    • Entender um código já construido e decompor o mesmo
  4. Linguagens

    • C++
    • Java
    • Problemas no desenvolvimento
      • 7 Pecados capitais
        • Pressa
          • Qualidade em segundo plano
        • Apatia
          • não se importar em resolver problemas conhecidos
        • Mente estreita
          • recusa em usar soluções reconhecidamente efetivas
        • Preguiça
          • caminho mais "facil" em vez de refletir sobre a decisão
        • Avareza
          • Detalhes excessivos, maior complexidade
        • Ignorância
          • falha em buscar compreensão
        • Orgulho
          • investimento em desenvolver soluções que poderiam ser aproveitadas de outras fontes
  5. Coesão

    • Alta coesão
      • Classes se relacionam, sistema unico
    • Baixa coesão
      • Classes se relacionam, mas há divisões em subsistemas
  6. Acoplamento

    • Alto acoplamento
      • Relacionamentos demais entre as classes
    • Baixo acoplamento
      • Muito pouco relacionamento entre as classes
  7. Problema durante o desenvolvimento

    • Contexto e forças
      • Solução Padrão
        • Padrões de Projeto
          • Interface
            • Adapter
              • Ajustar a interface de uma classe à interface que o cliente espera
            • Façade
              • Oferecer uma interface única para uma coleção de classes
            • Composite
              • Definir uma interface que se aplica a objetos individuais ou a grupos de objetos
            • Bridge
              • Desacoplar uma abstração de sua implementação de forma que as duas possam variar independentemente
          • Responsabilidade
            • Singleton
              • Centralizar responsabilidade em uma única instância da classe
            • Observer
              • Desacoplar um objeto do conhecimento de quais outros objetos dependem dele
            • Mediator
              • Centralizar responsabilidade em uma classe que supervisiona como um conjunto de outros objetos interagem
            • Proxy
              • Deixar um objeto atuar em nome de outro objeto
            • Chain of responsibility
              • Permitir que uma requisição passe por uma sequência de objetos até encontrar um que possa atendê-la
            • Flyweight
              • Centralizar responsabilidade em pequenos objetos compartilhados
          • Construção
            • Builder
              • Obter gradualmente a informação necessária para construir um objeto
            • Factory Method
              • Adiar a decisão sobre qual classe instanciar
            • Abstract Factory
              • Construir uma família de objetos
            • Prototype
              • Construir um objeto a partir de exemplo existente
            • Memento
              • Reconstruir um objeto a partir de informação de estado anteriormente salva
          • Comportamento
            • Command
              • Ecapsular a invocação de um método em um objeto
            • Template Method
              • Implementar um algoritmo em um método, deixando a definição de alguns passos do algoritmo para subclasses que podem refiná-lo
            • State
              • Distribuir uma operação de modo que cada classe represente um estado diferente
            • Interpreter
              • Distribuir uma operação de modo que cada implementação seja aplicável a um tipo diferente de composição
            • Strategy
              • Encapsular uma operação, tornando as implementações intercabiáveis
          • Extensão
            • Decorator
              • Acrescentar responsabilidades adicionais a um objeto dinamicamente
            • Iterator
              • Oferecer um modo de acessar uma coleção de instâncias de uma classe
            • Visitor
              • Acrescentar novas operações a uma classe sem alterar a classe
      • Solução anti padrão
        • Anti padrões de Projeto
          • Arquitetura
            • Stovepipe Enterprise
              • Sistemas múltiplos em uma empresa são desenvolvidos independentemente em cada nível
            • Jumble
              • Elementos de design horizontal (comum em todas aplicações) e vertical (dependen de implementações específicas são misturados
            • Vendor Lock-In
              • custo de mudar de fornecedor do produto ao qual o usuário é dependente para outro é muito alto
            • Architecture By Implication
              • falta de especificação (documentação) na arquitetura de um software em desenvolvimento, devido a experiências anteriores em construçãod e sistemas parecidos
            • Design by Committee
            • Swiss army knife
              • tentativa de prover uma classe para diversas necessidades, o designer adiciona um grande numero de assinaturas de interface e, a classe de interface acaba ficando extremamente complexa
            • Reinventing the wheel
              • necessidade de contornar restrições técnicas, incompatibilidades e licenciamento de softwares presentes em partes ou módulos de terceiros. ao invés de pegar uma solução existente e adequada, adota-se uma solução customizada com desempenho pior que a existente
          • Desenvolvimento
            • Functional Decomposition
              • Possui uma classe que funciona como uma rotina Main, a partir dela várias outras sub-rotinas são chamadas e, para cada sub-rotina, uma classe é implementada, cuja classe serve apenas para efetuar a ação
            • Poltergeist
            • Boat Anchor
              • parte do código de um sistema ou uma peça de hardware que não tem nenhuma utilidade no projeto atual
            • Golden Hammer
              • Ferramenta específica que é dominada pela equipe e é utilizada de forma generalista (bom pra tudo)
            • Dead End
              • Quando tenta incorporar um módulo já pronto porém com incompatibilidade de suporte
            • Spaghetti Code
              • programa ou sistema que contém muito pouca estrutura de software. Codificação compromete a estrutura de suporte lógico (resultado do código antigo que está sendo modificado ao longo dos anos)
            • Walking through a minefield
              • prática de lançar um sistema sem que seus erros sejam avaliados corretamente para ganhar tempo
            • Copy and Paste Programming
              • É a cópia e modificação de um código existente ao invés de criar solução genéricas (identificado pela presença de vários segmentos de código semelhantes intercalados ao longo do projeto)
          • Gerencial
            • Analysis Paralysis
              • Caracterizado por revisões constantes e construção de modelos excessivamente detalhados. Torna o sistema difícil de desenvolver, documentar e testar
            • Death By Planning
              • Falta de uma abordagem pragmática (objetiva) para o planejamento, cronogramas e captura do processo
            • Corncob
              • pessoa difícil que causa problemas através de um comportamento destrutivo em relação a equipe ou projeto (alguém discorda dos objetivos ou processos-chave)

Informações

Descrição
mapa mental descrevendo conteúdo da máteria de Analise de Software II, ministrada na instituição Unicamp em Limeira
Criado por
Ivan Filho
Visualizações
66
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?