Notação em administração de TI
Autor: Roberto Melfra | Publicado: 2011-05-31T22:14:00-03:00

Conforme visto anteriormente, expressar bem um conceito ou idéia é um problema de notação. Em minha opinião é uma demonstração de inocência a crença de que as notações existentes são suficientes para se expressar de maneira unívoca todas as nossas necessidades.  Uma demonstração da seriedade do problema é que o DARPA frustrado com a ineficácia das linguagens atuais está investindo 400 milhões de dólares na pesquisa de uma nova notação.  Para vários autores (Aritóteles,  Heidegger e Habermas entre outros) a primeira característica que uma boa notação deve ter é ser denotativa, e não conotativa. Sempre que houver margem de interpretação haverá problemas. Na ausência disso, estabelecer uma semântica coerente já é um bom paliativo, e é exatamente nesse sentido que concebi esta postagem.  Como eu já citei em outra postagem, a maior parte dos usos para a palavra “sinônimo” é metafórica. As palavras são diferentes para expressar diferenças. Conotativamente elas podem ser equivalentes, mas raramente o são denotativamente. Esse fato é importante quando pretendemos ser claros, e idealmente unívocos.  Parece-me ideal começar com os componentes da denotação, visto ser a denotação a mais básica definição. Os elementos que tratarei nesta postagem apesar de sua grande abrangência, não circunscrevem o assunto, mas já darão suficiente clareza para que eu possa prosseguir a progressão das idéias nas próximas postagens.  Minha intenção é separar alguns conceitos de denotação que hoje estão embaralhados dentro de duas classes, abaixo identificadas como elementos ativos e passivos:                      Elemento ativo             Elemento passivo                   Ação             Propriedade                   Serviço             Atributo                   Procedimento             Valor                   Operação             Característica                   Capacidade             Variável                   Função             Registro                   Método             Dado                   Responsabilidade             Significado                   Atuação             Domínio                   Competência             Sentido                   Processo             Parâmetro            Quando todas as palavras significam a mesma coisa, ou quando cada palavra significa tudo, na verdade nenhuma significa nada. Qual a diferença entre um método e um procedimento? Ou entre um atributo e uma propriedade? Dado e valor não são a mesma coisa? Competência ou responsabilidade? Esses elementos são todos parecidos, porém não são iguais. Desconhecer o porquê de sua similitude e diferença é fonte de dificuldades. Tanto administradores como desenvolvedores de software falham vergonhosamente nessa compreensão (pesquisem qualquer um desses termos no google para verem o resultado!).  Os significados são circunstanciais e discricionários. Cada uma dessas palavras listadas no quadro tem uma história de interpretação. A separação que eu faço é literalmente uma arbitragem, pois em contextos e momentos históricos diferentes cada uma dessas palavras foi utilizada de forma particular. Pode parecer brincadeira, mas existe uma hermenêutica dos significados desses elementos, pois os contextos de uso podem ser (ou já foram!) perdidos.  Sendo uma arbitragem, ela não é uma verdade do tipo pela qual as pessoas se apaixonam, elas apenas podem aceitar ou não, mediante sua conveniência.  Como já escrevi um pouco acima, inevitavelmente em postagens futuras terei de me utilizar desses termos, assim é útil expor como eu compreendo e me utilizo de cada um deles.Minha intenção com os argumentos a seguir é convencer da conveniência do uso que faço desses termos:   O primeiro argumento nesse sentido é dar as palavras significados unívocos, em outras palavras, abolir as conotações.O segundo é de caráter metodológico, manter o vocabulário coerente com o contexto.O terceiro é epistemológico, se estabelecer uma semântica bem definida acelera e facilita a comunicação.Por fim, a minha intenção é estabelecer um glossário para que se possa saber o que esta sendo dito sem a necessidade de repetidas explicações adicionais.   Assim seguem algumas sugestões de significado (minhas arbitragens de sentido) que considero úteis e uma rápida indicação de onde eu obtive a interpretação:  Banco de dados não tem  registros, tem tuplas. Uso assim porque na teoria de SGBD, há  cálculo relacional de tuplas, álgebra relacional e basicamente não  há uso do elemento registro.  Registro é uma especialização  de tupla. Bons exemplos do uso são ADA, F# e Pascal.  Objetos são reais, logo método  é só de objeto, nunca de classe, assim como atributo. Da teoria de  orientação à objetos, principalmente COAD e SmallTalk.  Classes são sempre abstratas e  têm responsabilidades e propriedades. Idem.  Parâmetros são valores em  trânsito, parâmetros sempre são passados. “The art of computer  programming”. Evitamos a palavra argumento pelo fato dela ter um  sentido bem estabelecido em lógica e oratória.  Rotinas têm funções. A  linguagem C implementa isso de forma bem explícita, pois nela não  há programa nem procedimento. Essa separação pode parecer sem  sentido a princípio, mas facilita por ser consistente, permitindo,  por exemplo, que rotinas sejam invocadas com parâmetros. “The  C Programming Language” K&amp;R  Valor é atômico e escalar. É  preferível à palavra conteúdo, pois o significado conteúdo é  mais amplo, podendo ser muitas coisas além do valor. Assim é  preferível dizer que uma variável tem valor e não conteúdo. Como  contra-exemplo um vetor de ariedade cinco tem como conteúdo cinco  valores.  Atributo é um tipo de  conteúdo, ou em outras palavras, um conjunto (um ou mais) de  valores.  Variável é a materialização  no programa de um atributo. Apesar de em matemática se ter  variáveis de funções, é mais explícita a forma de parâmetros  para as mesmas, além de ser prática em programação.  Todo problema tem um domínio e  competências para sua resolução. Da DDD, e do “How to solve it”  do Polya.  Operação e valor para cálculo  é um conceito direto da teoria matemática e da computação.  A solução tem ações e  características. A explicação para isso que usei é a de Jensen.  Uma abordagem necessita de  sentido e de atuação. De estratégia e projeto de algoritmos.  A necessidade sempre é  atendida por serviços e significados. De orientação à serviços  e pesquisa de negócios.  O que determina o aspecto são  as capacidades e registro que temos dele. Da Orientação à Aspecto  e ontologia da realidade.  Um fenômeno tem processo e  dados, pois pode ser observado e registrado. Da fenomenologia e  epistemologia.   Abaixo ofereço uma tabela com as associações da sugestão:                        Contentor             Elemento ativo             Elemento passivo                   Programa             Procedimento             Variável                   Rotina             Função             Parâmetro                   Objeto             Método             Atributo                   Classe             Responsabilidade             Propriedade                   Cálculo             Operação             Valor                   Problema             Competência             Domínio                   Solução             Ação             Característica                   Abordagem             Atuação             Sentido                   Necessidade             Serviço             Significado                   Aspecto             Capacidade             Registro                   Fenômeno             Processo             Dado