Zusammenfassung der Ressource
Software
- 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
- Remodelagem
- Reengenharia
- Recriar um
sistema já
projetado
- Engenharia Reversa
- Entender um código
já construido e
decompor o mesmo
- 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
- Coesão
- Alta coesão
- Classes se
relacionam,
sistema unico
- Baixa coesão
- Classes se relacionam,
mas há divisões em
subsistemas
- Acoplamento
- Alto acoplamento
- Relacionamentos demais entre as classes
- Baixo acoplamento
- Muito pouco relacionamento entre as classes
- 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)