Escolar Documentos
Profissional Documentos
Cultura Documentos
1) Conceitos
Um modelo mental descreve a mentalidade de um desenvolvedor representação
do programa a ser entendido e um modelo cognitivo descreve o cognitivo processos
e estruturas de informação temporárias no cabeça do programador que são usados
para formar o modelo mental.
Planos de programação são fragmentos genéricos de código que representam
cenários típicos em programação.
Beacons são recursos familiares reconhecíveis no código que agem como pistas
para a presença de certos estruturas.
2) Métodos
⚫ Compreensão Top-Down: começa com uma hipótese sobre o natureza do
programa. Esta hipótese inicial é então refinado de forma hierárquica,
formando subsidiárias hipóteses. Hipóteses subsidiárias são refinadas e
avaliada em profundidade. A verificação de hipóteses depende muito do
ausência ou presença de balizas.
⚫ Compreensão Bottom-Up: assume que le primeiro as instruções de código e
então mentalmente dividir ou agrupar essas declarações em abstrações de
nível superior. Essas abstrações são agregados ainda mais até um
entendimento de alto nível do programa é atingido.
⚫ Estratégias oportunistas e sistemáticas: le sistematicamente o código em
detalhe, rastreando através do fluxo de controle e fluxo de dados abstrações
no programa para obter uma visão global compreensão do programa, ou
adotem uma abordagem necessária, focando apenas no código relacionado
a uma tarefa específica em mãos.
⚫ O Metamodelo Integrado: baseia-se nos três anteriores modelos descrevem
os processos de compreensão usados para criar processos mentais
representações em vários níveis de abstração, último é o modelo de
conhecimento escreve a base de conhecimento necessário para realizar um
processo de compreensão.
3) Ferramentas relacionadas
⚫ Suporte de navegação: o processo de cima para baixo requer navegando de
abstrações ou conceitos de alto nível para detalhes de nível inferior; de baixo
para cima requer seguir links de fluxo de controle e fluxo de dados, que
oferecem suporte à amplitude e navegação em profundidade.
⚫ Pesquisa: procurar trechos de código por analogia e para pesquisa iterativa.
⚫ Múltiplas visualizações: fornecer diferentes maneiras de visualizar programas.
⚫ Visualizações orientadas ao contexto: pela prioridade mostrar a navagação
primeira vez.
⚫ Suporte cognitivo adicional: suporte externa para ajudar a estudar.
⚫ Visualizações gráficas e hipertexto.
⚫ Modelo top-down: documentos on-line com busca por palavras-chave em
documentos; poda da árvore de chamadas com base em categorias
específicas; recursos de diferenciação inteligentes; histórico de locais
navegados; e fan-in de entidades.
⚫ Modelo de situação: fornece uma lista completa de fontes de domínio,
incluindo fontes não relacionadas a códigos; e representação visual das
principais funções do domínio.
⚫ Modelo de programa: declarações pop-up; relatórios de referência cruzada
on-line e contagem de funções.
⚫ compreensão na hora do código-fonte:
• Recursos de pesquisa para que o usuário possa pesquisar artefatos de
código por nome ou por correspondência de padrões.
• Recursos para exibir todos os atributos relevantes dos itens recuperados,
bem como as relações entre os itens.
• Recursos para manter o controle de pesquisas e sessões de resolução de
problemas, para apoiar a navegação de um histórico persistente.
⚫ Perguntas:
1. Onde uma determinada sub-rotina / procedimento é invocado?
2. Quais são os argumentos e resultados de uma função?
3. Como o fluxo de controle chega a um determinado local?
4. Onde uma determinada variável é definida, usada ou consultada?
5. Onde uma determinada variável é declarada?
6. Onde um determinado objeto de dados é acessado?
7. Quais são as entradas e saídas de um módulo?