Documentação Função Atribuir Função atribuir sob o ponto de vista de quem usa e de quem constroi
1. Problema resolvido para quem usa, para quem constroe e para o dono (owner)

  • Comum a quem usa e constroi  (o que)
    • requisitos da função - o que a função é capaz de fazer, exemplo e teste de aceitação
    • parametros - informações que são passadas para a função e retornadas pela função

  • Quem usa (como)
    • teste de usabilidade
    • teste de documentação

  • Quem constroe (como)
    • código da função
    • relacionamento com outras funções - ambiente em que será inserida a função
    • efeito colateral - como contornar a mudança de estado no programa
    • teste unitário da função
    • teste integrado da função

  • Quem é o dono (porque, quando e onde)
    • necessidade - origem da solução
2. Requisitos da função
Deve ser capaz de atribuir  um valor a elementos de um conjunto na visualização de uma pagina qualquer do apoie.org.

Exemplo: Não mostrar na pagina apoie.org o indice
                valor= falso  elementos=indice conjunto=expandir

Teste de aceitação: http://apoie.org#atribuir(false, 'Expandir', ' indice ');
3. Parametros
  • O que
    • O que será atribuido ao elemento de um conjunto Ex.: false ou true

  • Conjunto
    •  Ação sobre o conjunto    Ex.: 'Expandir'

  • Elementos
    •   Nome do elemento de um conjunto Ex.: 'indice'
4. Function atribuir function atribuir (valor, conjunto, elementos) //atribui um valor a elementos de um conjunto
    {var re, str;
    re = /\s*(\w+)\s+(\w+)/;  //move conteudo dos parametros para re
    str = elementos, id = '';
    while (re.test(str)) str = str.replace(re, "$1,$2"); //processa todos ?????
        str = str.replace(/\s*/g, "");
        if (str === '') return;  //retorna ????  quando ????
        array =  str.split(",");
        for (id in array) eval(conjunto +"['" + array[id] + "'] = " + valor);}
5. Relacionamentos com outras funções


6. Teste unitário da função

7. Teste integrado da função

8. Teste Usabilidade
  • Na Url
    http://apoie.org#atribuir(false, 'Expandir', ' indice ');

    http://apoie.org/Scrum.html#Preparar.geral="Chave.documentacao=true;";Acabar.geral="atribuir(false, 'Chave',  ' documentacao moldura ');";

  • Dentro de outra função
    function Inic(xml) {
        try {atribuir(false, 'Chave', ChaveApag);} catch (err5) { }
        try {atribuir(false, 'Expandir', ExpandirApag);} catch (err7) { }
        if (xml !== '') Iniciar(xml);
        if (PrimeiraVez++ === 0) {
            try {eval(window.location.hash.substr(1));}
            catch (err34){} }
        document.getElementsByTagName('body')[0].style.display= 'block';
        F5('Inic'); }

    function FiltroNaUrl(fim) {    var  id, aux, Lig, Apag, txt;
        aux = Lig = Apag = txt = '';
        for (id in Chave) {
            if (pertence(id, ChaveApag)) {if (ver(id)) Lig += ' ' + id;}
            else if (!ver(id)) Apag += ' ' + id;}
        if (Lig !== '') txt += "atribuir(true, 'Chave', '" + Lig + " ');" + fim;
        if (Apag !== '') txt += "atribuir(false, 'Chave', '" + Apag + " ');" + fim;
        Lig = Apag = '';
        for (id in Expandir) {
            if (pertence(id, ExpandirApag)) {
                if (verDet(id)) Lig += ' ' + id;}
            else if (!verDet(id)) Apag += ' ' + id;}
        if (Lig !== '') txt += "atribuir(true, 'Expandir', '" + Lig + " ');" + fim;
        if (Apag !== '') txt += "atribuir(false, 'Expandir', '" + Apag + " ');" + fim;
        return txt;}

link Arquivo origem: WFuncAtribuir1.xml. Email Sugestão WD9 que substitui WD8
Documentação Função Atribuir {8} Problema resolvido para quem usa, para quem constroe e para o dono (owner)
Requisitos da função
Parametros Function atribuir Relacionamentos com outras funções
Teste unitário da função
Teste integrado da função
Teste Usabilidade
Índice Local {9}
Projeto Apoie {6} Projeto Apoie Projeto PAS Produzir + Aprender + Simplificar Serviço Web Relacionamentos entre Personagens
Base de Conhecimento {5} Conhecimento Dado Informação consolidada Página Pronta - site apoie.org Pulo do Gato
Contato Projeto Apoie
Linguagem {5}
Javascript {3} Referências e Ferramentas Sintaxe Cheat Sheet
Erlang Quick Sort
LDC {2} LDC LDC - Sintaxe
Definição {9} Erlang Python 3.0 Ruby 1.9.1 - Sintaxe Ruby 1.9.1 - Léxico Shell Lua PHP XML Lazy BNF
If
Dojo {4} Coding Dojo Coding Dojo - Formatos
Soluções Coding Dojo {6} Dojo #34: Expressão Aritmética Dojo #33: Impedimento Dojo #32: Sequência Numérica Dojo #31: Tráfego Dojo #29: Boliche Dojo #28: Jogo da Vida
Dojo Rio
Qualidade {2}
5W {3} 5W2H 5W1H 5W2H - 5W1H - Modelo
PDCA
Componente {5} Componente ExibirLinguagem.htm Gerar Páginas Lista Tabela de Decisões
Paletas {10} Paleta - Mais utilizadas Paleta - Apoie Paleta - Apresentação e Componentes Paleta - Diagramas Paleta - Diagrama Sintático Paleta - Dojo Paleta - Logos Paleta - Projetos Paleta - Setas Paleta - Tecnologia
Evento {4} Pendência Estados de Componentes Scrum Prioridade
Método {5} Oficina Serviço Web Warnier/Orr Basics Apresentar Problema Resolvido Simples x Complexo
Imposto de Renda