[es] PROGRAMACIÓN VÍA INTERFAZ - SIMONE DINIZ JUNQUEIRA BARBOSA (2001)
[pt] A indústria de software vem ao longo dos anos aumentando a funcionalidade das aplicações, numa tentativa de satisfazer as necessidades do maior número de usuários possível. Esta solução, no entanto, implica grandes desafios de usabilidade, devido à complexidade cada vez maior destas aplicações. Uma tendência que visa a acomodar as necessidades dos usuários sem sobrecarregar o software com funcionalidade de uso infreqüente é permitir que os próprios usuários finais configurem ou programem as aplicações, através de mecanismos de extensão que suportam um tipo específico de programação, chamado programação feita por usuários finais. Entretanto, grande parte das técnicas existentes para tal não conseguem atingir níveis aceitáveis de utilidade e usabilidade. Este trabalho trata alguns desafios de aplicações extensíveis, propondo uma abordagem que rompe com algumas barreiras entre interface e extensão. Esta abordagem traz para a interface, e ao alcance dos usuários finais, mecanismos de extensão de software com base em recursos semântico-pragmáticos, utilizando cálculos de metáforas e metonímias. Estes mecanismos foram escolhidos devido ao reconhecimento das Ciências Cognitivas do papel que desempenham em nosso raciocínio, em especial quando tentamos descrever ou entender um conceito abstrato ou complexo (Lakoff e Johnson, 1980; Lakoff, 1987; Lakoff, 1993; Ortony, 1993). Descrevemos um modelo de aplicações extensíveis que utiliza uma base de conhecimento onde devem ser representados os elementos do domínio e da aplicação que podem ser estendidos, bem como as classificações necessárias aos mecanismos de extensão. Nosso modelo considera os aspectos comunicativos das aplicações computacionais. Para garantir a consistência entre a aplicação original e a aplicação estendida, seguimos princípios da Engenharia Semiótica (de Souza, 1993) e prevemos, no modelo, a representação de regras que restringem as extensões na interface, a fim de refletir adequadamente as extensões de funcionalidade.