Arquivo da categoria ‘ontologia’

Sistemas de Software Transparentes

outubro 24, 2006

Vejam  o material de apoio que usei para proferir a palestra convidada do vigésimo Simpósio Brasileiro de Engenharia de Software.

Erro, Defeito: Falta, Falha –> Cuidado ao dar nomes!!

agosto 20, 2006

Recentemente, em um dos seminários do LES, foi apresentada uma pesquisa sobre estratégias de aumento de qualidade em software utilizando-se instrumentação de código. Com adequada instrumentação é possível evitar-se que um software apresente um defeito de maneira não controlada. Antever um possível problema e fazer com que o software reaja a esse problema de maneira “educada” é um desafio para os Engenheiros de Sofware. Em Inglês, utiliza-se o termo “graceful degradation” para denotar essa maneira “educada”. Além disso, uma instrumentação adequada fornecerá subsídios para a reparação do problema.

Vamos utilizar esse contexto para mostrar como é problemático o uso de nomes de uma maneira pouco cuidadosa. Nomes, claro, são muito importantes, mas muitas vezes o seu mau uso pode gerar muita confusão.

O caso que iremos tratar é justamente o termo utilizado para denotar essas estratégias de instrumentação do código com objetivo de torná-lo mais “educado”. Em Inglês utiliza-se o termo “Fault-Tolerant” para denotar software que age educadamente. No entanto em Português o nome comumente utilizado é “Tolerância a Falhas .

Tradução errada? Não exatamente, tendo em vista que vários dicionários traduzem “fault” para falha ( veja aqui, aqui e aqui). Se consultarmos o dicionário do Aurélio, veremos que falha tem como sinônimo falta, mas falta não tem falha como sinônimo. No entanto, o mais apropriado seria que a tradução fosse falta, conforme esse dicionário. Se consultarmos o Wordnet, veremos que “fault” não tem “failure” como sinônimo, mas veremos que “failure”, sim, tem “fault” como sinônimo. Portanto há coerência entre os dicionários do Aurélio e o Wordnet.

E dái? Bom, na literatura de Engenharia de Software na língua Inglesa o termo “failure” tem uma denotação bastante distinta do termo “fault”. Diz-se que um software pode ser tolerante a faltas, mas não a falhas! Não existe em Inglês o termo “Failure Tolerant”. É simples de ver: na Wikipedia encontra-se o termo “fault tolerant”, mas o termo “failure tolerant” é inexistente.

A distinção entre falta e falha é a seguinte: a) falta é um problema bem determinado no artefato, b) falha é a conseqüência de uma ou mais faltas e c) a falha é a percepção de que o artefato não comportou-se como o esperado. Portanto, observar que um software falhou é um nível de percepção externa ao software, enquanto a falta é a identificação interna, no software, de um problema.

No entanto, a Engenharia de Software, principalmente na área de Validação, é mais cuidadosa na escolha de termos, com o uso de “error” e “defect”. Se consultarmos o Wordnet veremos que não existe ligação direta de “error” para “defect”, nem vice-versa. No entanto, o termo “fault” aparece na lista de sinônimos das duas palavras. O mesmo ocorre no dicionário do Aurélio.

Na área de Validação utiliza-se erro para denotar um problema interno ao artefato e defeito para denotar a percepção externa de que o artefato não se comportou como o esperado. Erros ocasionam defeitos. Veja o paralelismo com a definição acima de falha e falta. No entanto em Validação vai-se além: testa-se para descobrir-se defeitos e depura-se para descobrir-se erros!

Nomes têm que ser utilizados com cuidado!

(08/07) – Veja uma relação de relatos sobre problemas na produção de software.

…………

Leia sobre Sistemas de Informação.

Veja a página do autor.

Marcando : Tagging

fevereiro 26, 2006

O que vem a ser “tagging”, que traduzi de primeira para “marcando”?

O “tagging” é uma nova maneira de utilizar a internet. É a maneira de não só guardar suas páginas favoritas, mas como também de dividir seu conhecimento com outros, e claro, com você mesmo.

Como funciona? É simples: para cada endereço que você vai guardar, o software de marcadores oferece a oportunidade para que você dê um conjunto de marcadores (“tags”) para o endereço.

Suponha que você quer guardar o elo para o globo.com, você pode marcá-lo, como: “jornal”, “oglobo”, “notícias”, “notíciasonline”, e qualquer outro termo que facilite com que você voltasse a achar o endereço. OK, o exemplo é fraco porque afinal de contas a maioria dos leitores de O Globo, sabe como chegar lá.

No entanto, suponha que você gostou do que está lendo aqui. Então você poderia marcar essa postagem com os marcadores: “delicious”, “tagging”, “marcando”, “marcadores”, “endereçospreferidos”, “amazing”, … Qualquer palavra ou frase que ajude-o a voltar a esse endereço. A escolha é sua, o software pode sugerir alguns marcadores, mas no fundo é você que decide como identificar aquela página. É uma atividade que ganha cada vez mais adeptos na internet. Veja em delicious ou em snipy, dois softwares que dão apoio a utilização de marcadores.

Como exemplo veja como marquei um Cartum do Dilbert, ou como marquei a página do Werpapers.

No meu “blog” em Inglês, marquei alguns endereços onde discute-se o assunto.

O principal aspecto, que já tinha notado na minha primeira postagem nesse “blog”, é que com as pessoas colocando marcadores em páginas, acaba-se construindo uma meta memória coletiva, facilitando a descoberta de coisas na própria internet.

Esse tópico tem a ver com o conceito de ontologia, antes um tema dedicado aos filósofos, e que hoje é um tópico importante para a informática, principalmente no contexto da internet.

O que está esperando…

Comece, você também, a marcar suas páginas favoritas! Eu sei a interface é em Inglês, mas com um pouco de esforço a língua não deve ser um obstáculo. Você vai gostar: é um pouco divertido também.

Qual a diferença entre marcadores e categorias? Bem isso fica para uma próxima postagem.

(08/07) – Escrevi um texto sobre o uso de marcadores pelo jornal Estado de São Paulo.

Desenho ou Projeto : Design versus Project

fevereiro 14, 2006

É comum no Brasil e em particular na literatura de Informática uma confusão entre as palavras Desenho e Projeto.  Isso não é assim em Portugal. Qual  o problema dessa confusão?

Veja abaixo o que escrevi como nota de pé de página de um artigo que sou co-autor junto com a Miriam Sayão.

"Utilizamos a palavra desenho como tradução para a palavra em Inglês “design”. Isso é importante para evitarmos uma confusão com a tradução, comumente utilizada, com a palavra projeto.  A palavra projeto tem como denotação principal o sentido de plano e no contexto de software tem a conotação de todo o processo.  Ao utilizarmos desenho evita-se a confusão entre o todo e uma de suas partes. "

É interessante notar que se consultarmos o wordnet para a palavra project teremos como resposta "(any piece of work that is undertaken or attempted)" e "(a planned undertaking) ".  Se consultarmos para a palavra design teremos como resposta "(the act of working out the form of something (as by making a sketch or outline or plan))".  No entanto não veremos a palavra project listada para essa pesquisa.

Se usarmos um dicionário on-line de português (Portugal),  para a palavra desenho, teremos os seguintes resultados:

do Lat. designu   
s. m.,
arte de representar os objectos por meio de linhas e sombras;
delineamento ou traçado geral de um quadro;
plano;
projecto;
arte de desenhar;
acto de desenhar;
aquilo que se desenhou.

Bem-vindo

fevereiro 4, 2006

Depois de muito tempo, resolvi fazer um diário.

O título refere-se a uma palavra que muito utilizava para conotar bons filmes no meu tempo de Califórnia.

O que escreverei aqui não terá a obrigação de ser “amazing”. É apenas um exercício para explorar a tecnologia no ambiente educacional e de divulgação científica, mas não ficará restrito apenas a esses temas.

Se ao mesmo tempo é uma vantagem, ter sua voz ouvida, por outro lado é bom lembrar uma frase do mundo do cinema: “com poder vem a responsabilidade”. Na verdade uma adaptação da frase original “with great power comes great responsibilty”.

Como me lembrei da frase? Usando a minha memória estendida: o google. É uma dependência que as vezes me assusta. Enfim; utlizando três palavaras chaves (power, responsibility, spiderman) minha memória estendida trouxe a frase que queria.

Agora além do google como mémoria estendida estou utlizando também o delicious como meta memória. Lá estarei aos poucos montando minha meta memória, na verdade um exercício informal de montagem de uma ontologia. Estarei seguindo o que aprendi no “reuse group” em 1982 onde os nossos “offices” eram “across the street”. Refiro-me ao princípio de “cow-path”. Ou seja: se você não sabe qual o melhor caminho, deixe que a prática do uso do espaço lhe aponte a melhor trilha.

Usando minha memória estendida achei o caso de Boston e não achei a referência que tinha sobre o gramado da esplanada dos ministérios em Brasília. Na verdade achei! “Amazing”: vejam o que achei: “Outras intervenções muito tímidas foram também realizadas pelos pedestres tentando diminuir as enormes distâncias, cruzam os gramados em diversas diagonais. Alguns destes caminhos foram logo apropriados, transformados em aléias pavimentadas.” [Madeira].

Só um comentário: li rapidamente o conteúdo do elo acima, apesar de não morar em Brasília não vejo daquela maneira nossa capital.

Continuando. É isso aí. Usar a memória estendida toma muito tempo.

Chega para um primeiro comentário.