UNTVERSIDADE DE
EVORA
DEPARTAMENTO
DE
INFORMATICA
RS
À'v
CRIAÇAO
DE
UMA FRAMEWORK
PARA
DESENVOLVIMENTO
DE SISTEMAS DE
COMUNICAÇÃO
AUUENTATIVA
E
ALTERNATIVA
Gonçalo José Cunha Fontes
Mestrado em Engenh aria Inform ática
Di ssert açáo orientada pelo :
Prof. Doutor Salvador Luís de Bethencourt Pinto de Abreu
Éuo.a UE 177 964 2010
rrl
o
UNIVERSIDADE
DE
EVORA
DEPARTAMENTO
DE
INFORMATICA
RS
EV
cru,tçÃo
DE
UMA FRAMEwoRK
rARA DESENvoLvIMENTo
DE SISTEMAS DE
CoMUNICAÇÃO aUUENTATIVA
E
ALTERNATIVA
Gonçalo José Cunha Fontes
D
Hà
I
Mestrado em Engeúaria Informética
Dissertação orient ada pelo :
Prof. Doutor Salvador Luís de Bethencourt Pinto de Abreu
Evora
l{wbl
2010
rr1
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria lnformática
Agradecimentos
Uma tese de mestrado é um trabalho árduo, exigente e que pode ser considerado algo solitiário,
no
entanto,não
seria possívelatingir
os
objectivos traçados para um trabalho como o proposto sem um grande apoio e colaboração de inúmeras pessoas, que sem qualquer tipo de contrapartida me apoiaram prestando o seu contributo paraa elaboração desta tese.
Ao
Professor Doutor SalvadorLuís
de Bethencourt Pinto Abreu, orientador desta dissertação agradeçoa
partilha de coúecimentos
e
experiencias,os
incansáveis incentivos e as valiosas confibuições para o fiabalho. De salientar ainda todo o apoio prestadoe
encorajamento, quer para esta dissertação, quer parao
artigo escrito e apresentado no âmbito da mesma. Porfim,
agradeço aindao
interesse demonstrado na continuação damiúa
ligação a esta instituição.Ao
Luís que mesmo à distância, sempre mostrou a maior disponibilidade, quer peloapoio demonstrado, quer pelos concelhos pníticos e técnicos, tendo assim sido de
uma grande ajuda, principalmente quando a clarividência
jâ
se encontrava ofuscada pelo cansaço.Ao
Luís Garcia, pela ideia, opiniões, e pela partilha de conhecimento sobre a área detabalho em que é especialista agradecendo ainda todo o apoio e encorajamento dado
durante todo o processo.
Ao
Luís Bruno, pelas suas ideias e pela ágil coordenação do tempo de aulas em que partilhamos a co-docência de uma disciplina durante a elaboração desta tese.A
todos os membros do Laboratório de Sistemas de Informação e Interactividade do Instituto Politécnico de Beja, pelos preciosos contributos e ideias para este projecto.À
miúa
família, composta pelos meus pais, avós, irmãos, cunhados e sobrinhos, portodo o apoio e confiança demonstrada durante este processo.
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Por
fim
gostaria
de
agradecera
mitrha
esposapor
toda
a
compreensão,encorajamento, ajuda e suporte, tendo sido muitas vezes a voz da minha razio, sem a
qual isto não seria possível.
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria Informática
Resumo
Framework
para desenvolvimento de sistemas de comunicação aumentativa ealternativa
Nesta dissertação descreve-se uma proposta de implementação de uma plataforma de desenvolvimento
de
Sistemasde
Comunicação Aumentativae
Alternativa
para programadores, com o objectivo de melhorar a produtividade e diminuir os tempos despendidos na implementação destetipo
de soluções. Esta proposta assenta numa estrutura compostapor
widgets configuráveispor
códigoe
integráveisem
novas aplicações,numa
Íilosofia
de
reaproveitamentode
objectose
funcionalidades,permitindo ainda
a
uniformização da estruturado
códigono
desenvolvimento desofh,vares
deste
tipo.
Esta
plataforma pretende
ainda
dar
flexibilidade
aos programadores, através da possibilidade de introdução de novas funcionalidades ewidgets, permitindo também que se testem novas abordagens ao sofiware durante a investigação.
A
implementaçãoem
tecnologia.sopen source
independentes daplataforma, permitinâ ainda
utilizar
os
objectos destetoolkit
em viírios
sistemasoperativos.
Palavras-chave: Framework,
ToolKit,
Comunicação Aumentativae
Altemativa,Pessoas com necessidades especiais, Tecnologias de Apoio
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Abstract
Framework
for
augmentative
and
alternative
communication
systems developmentIn
this master thesis we describe an implementation proposalfor
an Augmentativeand Altemative Communication Framework
for
developers,with
the objectiveof
improves the productivity and reduces the implementation times
for
these typesof
solutions.This
proposalis
basedon a
customized widgets structurethat
can be integratedin
new applications,with
the purposeof
reuse common featuresof
these applications, alsoallowing
standardize the code sffucturein
this kind
of
software development. This framework intendsto
provideflexibility
to
programmers givingthem the possibility
of
introduce new functionalities and widgets, allowing them tootest
new
approachesduring
research.The
implementation basedon
open-sourcetechnologies, platform independent, allows the use of this
toolkit
in several differentoperating systems.
Keywords:
Framework,ToolKit,
Augmentative andAltemative
Communication,People with special needs, Support Technology
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria lnformática
Índice
Agradecimentos I
2.2.
Software de Apoio aC44...
2.3.
Sistemas com Paradigmas Semelhantes3.
Apresentação e Descrição do Sistema......7 ...
t2
3.1.
Framework ouToolkit
... 163.2.
Análise eDecisões.
...173.2.1.
LinguagemdeSuporte.
... 183.2.2.
User InterfaceQT...
... 18l5
202t
26 32 333.3.
Conceito....3.4.
Estrutura do Sistema3.5.
Utilizaçáo e Funcionamento ...4.
Avaliação e Trabalho Relacionado4.1.
Metodologia de avaliação... 324.2.
Protótipos e avaliaçãoFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
5.
Conclusões e TrabalhoFuturo...
...39Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria Informática
Indice
de
Íiguras
Fig.
I
-
Interface do EugénioF ig. 2
-
Interface do Talkactive ...... 8
l0
Fig. 3-
Interface doCE-e...
... II
Fig. 4-
Utilizadores e Funções no ProjectoComspec...
... 13Fig. 5 -Estrutura de implementação do
WAACT
...17Fig. 6
-
Diagrama de Interacção entre um Widget e a Mainwindow...20Fig. 7
-
Diagrama de Interacção entrevnWidget
e outoWidget
...21Fig. 8
-
Hierarquia de Classes doW4ACT...
...22Fig. 9
-
Diagrama de Classes doWAACT
...24Fig. 10
-
Esquema da composição de umteclado
...25Fig. I
I
-
Esquema da composição das paletes de cores e espessuÍa de linha...26Fig.12-
QT CreatorIDE
27 Fig. 13-
Código paÍaacriação de uma tecla Standard, uma tecla dimensionada e umapersionalizada...
... 28Fig. 14
-
Código paÍaa criação de uma aplicação simples composta por dois botões euma área de texto...
I\íqa
Fig. 15
-
Excerto de código do Event ManagerFig. 16
-
Código de implementação de um sistema de notetakingFig.
l7
-
Protótipo de um sistema de notetaking com teclado de ecrã desenvolvidoem
WAACT
e compilado em Windows e Linux eFig. 18
-
Codigo de implementação de uma aplicação de desenho29 31 34 35 36 37
Fig. 19
-
Protótipo de um sistema dedeseúo
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Lista
de
abreüaturas
esiglas
CAA
- Comunicação Aumentativa e AlternativaASHA - American Speech-Language-Hearing Association
CE-e - Cademo Escolar Electrónico
WAACT
-
Widget Augmentative and Alternative Communication ToolkitFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria Informática
Capítulo
1
l.
Introdução
A
comunicação é uma pnítica e uma necessidade fundamental para todos os sereshumanos.
No
entanto,por
diversos motivos, muitos de nós sofrem de condições fisicas que tornam a comunicação tradicionaldificil
ou até mesmo impossível.Certas perturbações sensoriais, cognitivas ou motoras podem comprometer total ou parcialmente as capacidades comunicativas humanas.
As
estimativas apontam paraque cerca
de
l0o/o da população mundial seja portadora deum
qualquertipo
dedeficiência, sendo
que
nessegrupo, uma
percentagem bastantesignificativa
éafectada por deficiências ao nível da comunicação
[].
Nestas circunstâncias pode-se recorrer
à
Comunicação Aumentativae
Altemativa(cAA).
Segundo a American Speech-Language-Hearing Association
(ASHA),
esta área de prática clínica tenta compensar de forma temponíria ou peÍmanente incapacidades de comunicação por parte de pessoas com dificuldades ao nível da fala ou escrita [2].Ainda
segundoa
ASHA
um
sistemade
CAA
é,
"um
grapo
integrado
de componentes,incluindo
símbolos,ajudas,
estratégiase
técnicas
usadaspor
indivíduos para melhorar a comunicação"
fll.
Os sistemas de informação e as tecnologias actuais podem ser um importante auxílio
para os sisternas de
CAA,
tendo sido desenvolvidos nos últimos anos esforços nessesentido com o desenvolvimento e a implementação de diversas soluções. No entanto,
grande
parte das
soluçõesaté
agora desenvolvidas,não tem em
consideraçãoI
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria Informática
qualquer integração com outros sistemas, não sendo assim aproveitado o trabalho
já
desenvolvido e o coúecimento já adquirido de forma afazer mais e melhor.No
desenvolvimento de soluções deste tipo, é importante a incorporação de todo odiscurso existente, vocalizações, gestos
e
sempreque
necessárioo
recurso aelementos extemos de apoio à comunicação (e.g. tabela com lehas e frases). Neste sentido têm vindo a ser desenvolvidos diversos sistemas tecnológicos que auxiliam a
composição e transmissão de mensagens escritas ou faladas.
O
Laboratório de Sistemas de tnformação e Interactividade (LabSI2), em conjunto como
Centro de Paralisia Cerebral de Beja (CPCB) e o Instituto de Engenharia de Sistemas e Computadores Investigagão e Desenvolvimento em Lisboa (INESC-ID),têm
vindo a
desenvolver algumas ferramentas de apoioà
CAA,
entre as quais sedestaca o "Eugénio
-
O Génio das Palavras" [3].Este sistema é uma ferramenta de apoio à escrita de textos em Português Europeu
que
recoÍre
a
modelos estatísticos baseadoseÍn n-gramasf4l
parasugerir
umconjunto de palavras prováveis na sequência do texto
já
escrito. O Eugénio funcionano
ambientel,§
Windowse
apoiaa
escrita de mensagens em qualquer aplicação deste sistema operativo.Para pessoas incapacitadas de utilizar um teclado de computador, o sistema dispõe de
um
tecladode
ecrãI.A
selecção destes elementos pode ser efectuadaafavés
de métodos de acesso directo que utilizam,por
exemplo,um
dispositivo de ponteiro (e.g. rato, caneta, luvavirtual,
enfie outros.), ou métodos de acesso indirecto querecoÍrem apenas
a um ou
dois intemrptores. Parao
reforço da interacção com outilizador
foi
incorporadono
sistemaum
agente de interface eum
sintetizador defala,
podendo
estes componentesda
interface
do
sistemaser
adaptados às necessidades particulares de cada pessoa.I
Componente que apresenta uma matriz contendo os viírios caracteres disponíveis para a composição
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria Informática
No desenvolvimento de outros sistemas de apoio à
CAA,
como é o caso do Caderno Escolar-
Electrónico (CE-e)[s] tem-se verificado a necessidade de reutilização de componentes de softwarejá
desenvolvidos para outros sistemas. Por exemplo, no CE-e, que pretende ser uma alternativa digital aos üadicionais cademos de papel paraalunos
com
necessidades especiais, verificou-sea
utilidade
de
incorporação dealgumas funcionalidades
já
desenvolvidas parao
Eugénio, comoa
predição de palavrasou
o
tecladode
ecrã.Além
disso, se estas ferramentas adoptarem uma estrutura modular que facilite a substituição dos seus componentes, entÍlopoder-se-ão experimentar
e
avaliar de forma mais eficaz novas abordagensa
determinadas técnicas de CAA, como é o caso da predição de palavras.Contudo,
a
integraçãode
componentesenffe
as
duas aplicações anteriormentedescritas não é tarefa fiícil, visto que tais sistemas não foram desenvolvidos de forma modular e nem sequer na mesma tecnologia.
Neste contexto, o âmbito deste projecto propõe uma plataforma de desenvolvimento transversal
ao
sistema operativoque
permitea
reutilizaçãode
componentes de software, numa linguagem multiparadigma e de uso geral.A
solução queaqui
se descreve,é
implementada numa arquitectura modular quepermite
a
reutilizaçãode
variados widgetsou a
criaçãode
novos componentes,podendo estes ser usados isoladamente, num novo projecto ou ainda integrados num projecto existente.
Devido
aindaao
middlewareutilizado
na
implementação deste sistemae a
ummódulo
de
gestãode
eventos criado parao
efeito, garante-setotal
liberdade nacompilação e execução dos projectos para os sistemas operativos mais comuns do mercado.
O
middlewareque
foi
utilizado
e
permitetal
flexibilidade
é
a
User InterfaceFramework
QT,
qulefoi
escolhida essencialmente devidoà
sua portabilidade, aodetrimento das suas concorrentes .NET Framework e
MFC
(Microsoft Foundation Classes) que apenas funcionam sobre plataformaWindows.Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Por frm,
devido
ao
facto das
tecnologiasutilizadas serem
abrangidas pelolicenciamento
LGPL,
é
garantida
total
liberdade
no
desenvolvimento
edisponibilização dos componentes.
Assim, de forma a inúoduzir o frabalho desenvolvido, na secção 2 apresenta-se uma revisão do estado da arte, sendo na secção
3
apresentado e descritoo
sistema. Na secção4
será explicadaa
avaliaçãoe
o
trabalho relacionado,e por
fim,
serão apresentadas as conclusões e direcções para trabalho futuro.O presente trabalho deu ainda origem a um artigo que
foi
apresentado na conferênciaInforum
20lO-
Simpósio de Informática,no
track de "Computação GráÍica" quedecorreu a 9 e
[0
de Setembro na Universidade do Minho em Braga.4 Gongalo José
Cuúa
Fontes-
Universidade de Évora-
Departamento de InformáticaFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
2.
Estado da
Arte
É
comum,
no
que
diz
respeito
às
tecnologiasde
informação,
guo
no desenvolvimento de vnr software ou sistema, o público portador de um qualquer tipode deficiência cognitiva ou motora, acabe por não ser contemplado pelos requisitos das várias fases do projecto.
Duas das razões para esta situagão prendem-se com a especificidade que os sistemas devem ter neste tipo de casos e a variedade de situações entre cada utilizador e o seu estado.
No entanto, o desenvolvimento de sofnvare de apoio à
CAA
é imprescindível para as pessoas que conseguiramgaúar
parcial outotal
autonomia gÍaças as tecnologias, bem como para futuros utilizadores.2.1.
Comunicação
Aumentativa
eAlternativa
Um
dos principais objectivos desta área,é
fornecera
ajuda necessária àspessoas incapazes de satisfazer as suas necessidades dirírias de comunicação através de meios convencionais.
Ao
contrário
do
que
normalmenteé
sugerido,a
Comunicação Aumentativa eAlternativa abrange todas as formas de comunicação, não sendo esta apenas um
exclusivo
da
forma
oral,
sendo assim usada paraa
expressãode
pensamentos,necessidades,
vontades
ou
ideias.
Todos
usamos
CAA,
mesmo
queinconscientemente, quando fazemos expressões faciais ou gestos, usamos símbolos
2
5
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
ou imagens, ou ainda quando escrevemos. Todas estas utilizações de CAA permitem-nos usufruir de uma prática fundamental, a comunicação.
As
pessoascom
graves dificuldadesao nível da fala ou
expressãotêm
nestes métodos de comunicação, uma forma de complementar o seu discurso existente, ou,se este for inexistente, uma forma de o substituir.
Para se exprimir, estas pessoas dispõem de diversas ajudas aumentativas, como os
quadros
de
comunicaçãopor
imagensou
símbolos,
ou
ainda
equipamentoselecfrónicos,
no
entanto, mesmocom
estetipo
ajudas,é
importante queos
seusutilizadores nunca deixem de se exprimir de uma fonna natural, se
o
conseguirem,devendo estes métodos
ou
mecanismosser
apenasuma
melhoria
na
suacomunicação.
Contudo, se estas ajudas permitem uma melhoria significativa da comunicação dos seus utilizadores, estas também apresentam alguns problemas, tais como o facto de a
sua utilização ser bastante lenta comparativamente com os métodos de expressão
mais utilizados, a fala ou escrita.
Este
é um
dos principais problemas ligadosao
desenvolvimentode
soluções deauxílio a comunicação, sendo que os dois valores mais importantes expressados por
pessoas que utilizam este tipo de sistemas são:
(i)
Dizer exactamente o que querem dizer;(ii)
DizêJo o mais depressa que consigam [6].Estas são duas características de
dificil
satisfação por parte dos designers deste tipode
soluções,visto que os
utilizadoresalvo
destas aplicações podemter
uma variedade de necessidades, sendo que estas nem sempre são compatíveis com as de outros utilizadores, mesmo que estes sejam portadores da mesma deficiência.Dependendo
do
nível de
deficiênciade
um
utilizador, poderá ser preferível um determinadotipo
de dispositivo de input ao detrimento de outro.No
entanto, esteúltimo
poderá serutilizado com maior
eficáciapor
outro
utilizador portador da mesma deficiência.6 Gonçalo José Cunha Fontes
-
Universidade de Évora-
Departamento de InformáticaFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria Informática
Por
exemplo;no
caso deum
utilizadorcom
paralisia cerebral comum nível
dedeficiência elevado, afectando as suas funções motoras, poderá ser mais vantajoso a
utilização de
um
dispositivo intemrptor associado aum
sistema de varrimento aodetrimento da utilização de um rato ou do próprio teclado do computador.
Se neste exemplo imaginarmos que o referido utilizador está a utilizar um sistema de escrita de frases, e que os seus movimentos são muito limitados, este terá grandes dificuldades em
utilizar
quer um teclado fisico, quer um teclado de ecrã,o
que iráreduzir drasticamente a sua velocidade de escrita.
No
entanto, seno
mesmo ceniírio imaginarmosum
utilizador portador da mesma condição, tendo este contudo, limitações motorasmuito
inferiores às do utilizadoranteriormente descrito, poderemos
tirar
claras mais-valiasda
utilização
de
um teclado.Não sendo
justificável
o
desenvolvimento de uma aplicação específica para cada pessoa, é importante o desenvolvimento de sistemas flexíveis que perrritam a maior abrangência possível de utilizadores. Contudo, na grande maioria das vezes tal não épossível devido ao largo número de variáveis a ter em conta, sendo que nesses casos é importante tentar novas abordagens que permitam validar novas realidades.
2.2.
Software
de
Apoio
a
CAA
A
introdução dos sistemas de informação e das tecnologias actuais vieram melhorar significativamente a efrcárcia dos sistemas de CAA.Como
já
foi
referido,ao logo
dosúltimos
anostêm sido
desenvolvidos muitosesforços
da
construçãode
soluções tecnológicascom
o
intuito de auxiliar
osutilizadores com difi culdades comunicativas.
7 Gonçalo José
Cuúa
Fontes-
Universidade de Évora-
Departamento de InformáticaFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
A
grande maioria dos softwares deCAA
desenvolvidos tem por base, de uma formaou
de outra,um
teclado de ecrã, tantona
suafoÍma
tradicional funcionando nostradicionais computadores
de
secretáriaou
portáteis,como em
interfaces fisicasadaptadas (dispositivos
do tipo
"handheld'),
sendoos
mesmos utilizados para aobtenção de frases, podendo estas ser formadas por letras, palavras ou por sequências de símbolos pictóricos. Um exemplo deste tipo de sistemas é o Eugenio (Fig.
l.)
[3].Esta ferramenta que dispõe de uma funcionalidade de predição recolre
a
modelos estatísticos baseados em n-gramas[4] para sugerir um conjunto de palavras prováveis na sequência do texto.A
ideia por detrás das n-gramas ou modelo de Markov é prever a probabilidade daletra seguinte num determinado texto. Para isso são examinadas amostras de textos
denominadas de textos de treino que, com base numa estimativa de parecenças, irão identificar a letra com maior probabilidade possível de ser a seguinte.
Para além da predição de palavras, o Eugénio dispõe de um sistema de varrimento da aplicação que permite aos utilizadores que
teúam
deficiências motoras, estando por isso impossibilitados de usar os tradicionais mecanismos de I/O, como é o caso dos dispositivos apontadores, usar métodos que recorrem a um ou dois intemrptores, para que o utilizador não tenha que movimentar os membros podendo apenas seleccionara opção desejada.
E
Rçady
Fig. I
-
Interface do Eugénio8 3 ELECTRIC O ELECTRIODADE I ETECTRÓrurcA 4 ETECTRÓNICOS 5 ELECTROTECI,IIA
EII
EIil
TiltriltrEII
ilEIil
T
il[[
ilil
II
II
Gonçalo José
Cuúa
Fontes-
Universidade de Evora-
Departamento de InformáticaE! 2 ELECTRÓMCO E tr T o§l { a- Y I o + +
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia lnformática
Como
já
foi
tambem referido, um dos principais requisitos para os sistemas deCAA
é o
factode
o
utilizador poder ser rápidona
escrita da mensagem que pretendecomunicar. Assim, para alem dos mecanismos
já
descritos,o
Eugénio dispõe aindade
um
mecanismo de extensão de abreviaturas que permite ao utilizador escrever palavras ou frases digitando apenas a sua abreviatura. Esta funcionalidade recorre aum
dicionário de abreviaturas predefinido, podendo este ser configurado para umincremento dos termos, permitindo uma melhor adaptação ao seu utilizador.
Isolando
todas
estas funcionalidades, podem-seextrair
componentesdos
marsdiversos tipos, como
a
predição de palavras,o
teclado de ecrã,o
varrimentoe
aexpansão
de
abreviaturas. Todos estes componentes que trabalhamem
conjunto foram implementados sobre uma estrutura hierárquica de classes. Todos eles seriam de uma grande utilidade em sistemas similares.Para além do Eugenio, existem algumas outras ferramentas de
CAA
que permitem aexpressão de palavras
ou
frases, quer de uma forma escrita, quer de uma forma falada, por intermédio de sintetizadores de voz. Um desses casos é o Talkactive(Fig.
2.)[7]
que recoÍre a modelos deHigh
Frequency Vocabularyot
Core Vocabulary;Este tipo de modelo define que um número relativamente pequeno de palavras pode constituir a grande maioria do que é
dito
em comunicações normais. Com algumas centenas de palavras uma pessoa pode dizer cerca de 80% de tudo o que é necessário em comunicações diárias [8].Este
é um
sistemade
utilização simples que recorrea
símbolos pictóricos paraidentificar
palavras,que
conjugadasentre
si
permitemformar
as
frasesque
outilizador pretende comunicar.
Assim, o utilizador apenas precisa de seleccionar as imagens representativas do que este pretende transmitir a outro interveniente, tendo a vantagem de num unico click
poder transmitir uma palavra, frase ou ideia.
I
t
=;*;'
..l -ir r+;a 1Fçrat
r.l -Iffi-
r+
Clü -a-
íh
olro-o?
+
.t @ r13â I ttüú*
Ir
F
n
lr -i a J-rrí ç-as-
a rafr
§tÊ
__lI_JL_Jl
T
Ilâ tI
t-aFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Fig. 2
-
lnterface do TalkactiveDevido em grande parte
a
sua simplicidade, estes sistemas de símbolos ganharamgrande popularidade em vários países, sendo usados com grande sucesso por pessoas
portadoras de paralisia cerebral
t9ltl0l.
Confudo, o Talkactive também possui claras desvantagens, como o facto de, devido a
sua extensão, não ser possível disponibilizar num único ecrã todo o vocabulário de utilização diâna ou de não estar disponível em português.
No
entanto, à semelhança do que se passa como
Eugénio esta aplicação também écomposta
por
diversos componentes distintos,tais
comoo
teclado,o
corpus de símbolos pictóricos e um editor de texto, que poderiam por sua vez também ser de grande utilidade em aplicações do mesmo género.Por outro lado, estes dois sistemas acabam
por
se revelar bastante semelhantes aonível
da
sua
estrutura
gráftca,bem como,
ao
nível
de
algumas
das
suasfuncionalidades, sendo ambos baseados numa grelha de teclas permitindo a escrita de
palavras e frases.
Gonçalo José Cunha Fontes
-
Universidade de Évora-
Departamento de Informátical0
I t
/\
\/
'ô\
-a a ) I ) I I , a a a ) I a a ) I a I a a a a I tíonrrcl do drscphno
+/'
= o3*3azb+3ob2+às ftz-e+{ NFTffi
O Crd.oo Ercob clcctrooco [.{Lreô.]00-l rco rrdo l unr-r. cmo rnr fcraear & !nad. uldrdr Pn caDçrt ca üculôólr
arotcri, dróo qrr pre .La d. pcú I rccoüe c orgroaçlo dc notrs Gn cort.úo d. adr &t .an I rgrrze dr rne foor lôgice todol or dooncotos rdcrcdcs r r.nr daarrrdr Ôtcptoe c dctcmrü ale
O Crdcmo Escoh ehctrotrco (CE-c) :o coíTÍto corn orÍÍlr rccnologts dc aoro. coro o Eugcoo [G.Íor2m;l ?oD cltü canç.!. pcmdo qu. Grts pos;a rc&l u trdrs $,rc mçoltca crcttr. rlrl Grpto ltüo rcac[ratt m ôspcaÔdo pths caaçer lct occcssdrdcr ctPrqlt .{.rru. crtr fcrlrcdr ro frvqcccr e tdopçlo dc ull proccrro naoôco dc reco&r d. aotrt ca rlr dc aír podcri coôs bcarGoot ulúdil'an oo ruc.r3o crcolr [Bor{e2@t]
trtonuol &
Dorrrngo 23 &, ÂÂoro dc 2OlO
,rt
af.-EEffi
l^olcmotrco_ó_ono pdfa
Í-t
tr!
H.C.I - Áulo ó ?4-O3-20tOFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Fig. 3
-
Interface do CE-eOutro
softwarede
apoio
a
pessoascom
necessidades especiais, mas desta vezessencialmente direccionado para estudantes, é o Caderno Escolar electrónico (CE-e)
t5l.
Este sistema que pretende ser um substituto dos tradicionais cademos escolares em papel, disponibiliza aos seus utilizadores uma interface e variadas funcionalidades de
notetaking organizado,
permitindo
a
escrita
de texto,
inserçãode
imagens ehiperligações, upload de ficheiros e aplicação de formulas matemáticas, entre outras
(Fig.3.).
No entanto, ao contrário dos sistemas anteriores este não possui qualquer ferramenta de apoio ou aceleração da escrita, como o preditor de palavras, o teclado de ecrã com varrimento
ou
ainda a grelha de símbolos pictóricos, ferramentas estas, de grande importância para o aumento da produtividade deste tipo de utilizadores.ll
Gonçalo José Cunha Fontes-
Universidade de Éuora-
Departamento de Informática' (eôclm [«olu cbctrónko Elt
-l
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
2.3.
Sistemas com Paradigmas Semelhantes
A
ideia da
criação de uma plataformade auxílio ao
desenvolvimento deaplicações de
CAA
não é propriamente nova, tendo sido nos anos 90 desenvolvidos esforços nesse sentido por parte do Consórcio Comspec.Este consórcio que reuniu uma equipa multidisciplinar constituída por educadores,
engeúeiros e programadores provenientes de diversos países europeus, tais como a
Inglaterra, Portugal, Holanda, Suécia e Noruega
I
l],
tiúa
por objectivo a criação deuma
plataforma
que
permitisseplena
transversalidadeentre quatro tipos
deutilizadores (programadores, integradores
de
sistema, facilitadorese
utilizadoresfinais).
As metas a atingir eram bem claras e consistiam em:
Proporcionar auxiliares alternativos
à
comunicaçãoe
sistemas de controlo para pessoas com algum tipo de deficiência comunicativa ou idosos;Possibilitar aos profissionais da reabilitação a criação e adaptação de sistemas
de
comunicação baseadosem
aplicações informáticas
de
interfacesuserfriendly;
a
o
o Introduzir na indústria das tecnologias de reabilitação, um conjunto poderoso
de ferramentas com características modulares.
As
primeiras avaliaçõesa
arquitectura deste sistemaforam
feitasnum
simuladorimplementado em SmallTalk V
e
HyperCard para MacintochI
l].
No
entanto, aprimeira versão do Software Comspec
foi
desenvolvida na plataforma OpenDocll2).
Após o cancelamento do suporte aos sistemas OpenDoc, o software
foi
redeseúado e novamente desenvolvido utilizando a tecnologia Java, tendo sido esta tecnologiaescolhida
com
o
intuito
de
fornecer
ao
sistemauma maior
flexibilidade
etransversalidade entre sistemas operativos.
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Com
já foi
referido, este projecto pretendia transversalidade entre diversos tipos deutilizadores,
tendo
sido
este requisito,
uma
das
grandes
dificuldades
naimplementação deste sistema, devido essencialmente ao facto de este necessitar de
uma grande diversidade de perfis de utilização.
Os quatro stakeholders identificados na análise de requisitos tinham tarefas distintas
e distribuídas (Fig. 3.)
[3]:
Os Programadores iriam criar componentes para as aplicações;
Os
Integradoresde
Sistema,iriam criar
as aplicações para os utilizadores finais com base nos componentes desenvolvidos pelos programadores;Aos
Facilitadores caberiaa
tarefa
de
optimizar
as
aplicaçõespara
osutilizadores finais;
O
O
o
a
Os
Utilizadores
finais
apenasteriam
apenasque
utilizar
os
sistemapreviamente adaptado pelos Facilitadores.
Fig. 4
-
Utilizadores e Funções no Projecto ComspecCOmSpeC
- the system
and
its user
roles
EIT
TTTEI!EEEEB
EIEIEEEIEl!il
Developer
Java / Java Bean c onont code
1
Add tn
it-
fitakc conPonenís'Run
iÍ
..'
Ajusí
it ...'
Facilitator
1
^ã
F
ApplicahonConfigarv ií...
tIntegrator
System
Comspec
componentsEnd
User
'Design&
3..o
Gonçalo José
Cuúa
Fontes-
Universidade de Évora-
Departamento de Informátical3
EE
ETNr
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Contudo, esta diversidade dos papéis (roles) que a aplicação deveria permitir, acabou
por
condicionara
implementaçãoda
mesma, sendoque
destaforma
o
sistemaComspec acabou por não ser mais que um gerador de sofnarure CAA.
Assim, devido a necessidade de garantir o cumprimento dos requisitos necessários a todos os utilizadores, acabaram por serem impostas grandes limitações na interface
bem como
na
configuraçãode
componentes,o
que levou
ao
esquecimento doprojecto, alguns anos mais tarde.
O projecto Ulysses tentou ser um pouco menos ambicioso que o Comspec tendo sido definidos apenas três tipos de utilizadores principais:
Os
designerse
programadores, quea
semelhançado
Comspeciriam
criarcomponentes para as aplicações;
r)
a a
Os
integradoresque com
base
nos
componentes desenvolvidos pelosdesigners
e
programadoresimplementaria
as
aplicaçõesde
ajuda
acomunicação;
Os utilizadores finais que apenas teriam que utilizar e tirar o melhor partido destas aplicações.
Por outro lado este projecto
já
tinha como referencia as fragilidades oriundas doComspec tendo sido definida uma nova abordagem ao problema por forma a tentar
melhorar
as
diversas situações identiÍicadas.,no
entantoo
desenvolvimento dosistema acabou
por
não coúecer
grandes avanços,tendo
acabadopor
serabandonado
[4].
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engeúaria lnformática
3.
Apresentação
eDescrição
do Sistema
Como
foi
dito no Capítulo 1, a maior parte dos sistemas de apoio àCAA
foram desenvolvidosde forma
monolítica,
sendoa
sua
implementação, alteração ou integração nouüos sistemas bastantediÍicil.
Este problema acaba
por ter
diversas origens,tais
comoo
desenvolvimento deaplicações proprietárias,
a
faltade
esüutura para reaproveitamento de código, ouainda,
a
utilização
de
diferentes
estruturasou
linguagens
durante
a
sua implementação. São estes os problemas que este projecto pretende resolver.Para isso,
foi
estudadae
desenvolvida uma plataformade
desenvolvimento paraprogramadores,
denominada
de
Widget
Augmentative
and
AlternativeCommunication Toolkit
(WAACT),
que lhes permitirá criar projectos de fenamentasde
CAA,
utilizando
uma
variedadede
componentesgráficos predefinidos
econfiguníveis, comuns neste
tipo
de
aplicações,permitindo assim
aumentaÍ aprodutividade
no
desenvolvimento,bem como
experimentare
avaliar
novasabordagens a estas aplicações durante a investigação.
A
avaliação de novas abordagens ao desenvolvimento de sistemas destetipo
é um aspecüo que mereceu particular atenção durante a análise dos requisitos, tendo em conta que em muitos casoso
desenvolvimento de um protótipo é moroso e pode, após avaliação, ser descartado por não satisfazer as necessidades ou especificidades do utilizador.Para isso,
foi
necessário o pensamento de que um sistema com estas características deveria ser de fácil utilização, e que, com apenas algumas linhas de código pudesse fomecer uma base de trabalho aceitiível para uma avaliação por parte dos testers.3
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
3.1.
Framework
ou
Toolkit
Analisando
as
suas caÍacterísticase
estrutura podemosclassificar
estaferramenta como Toolkit ou como Framework.
Existem varias definições para ambas as estruturas entre as quais se destaca, paÍa os Frameworl<s,
a de
RalphE.
Johnsonque
diz
que
estes"são
a
reutilização datotalidade
ou
departe do
desenhode
um
sistemaque
é
representadopor
umconjunto de classes abstractas e pelaforma como as suas instâncias interagem'Tl5l.
Ainda o mesmo autor
diz
qure "um Framework é um esqueleto de uma aplicação quepode ser configurada
por
um programador".Assim, quando se
utiliza
um Frameworfro
corpo da aplicação eskí implementado,permitindo
a
sua reutilizaçío, devendo apenas ser particulaizadas as chamadas àsfunções,
o
queredrz
significativamente as decisões de concepção, ao contnírio do que é feito em sistemas como os Toolkits ou bibliotecas partilhadas(dll's), em que écodificado o corpo das aplicações e apenas se faz a chamada ao código que se quer
reutilizar
[6].
Não sendo as duas definições anteriormente descritas semelhantes, também não são contraditórias, acabando até
por
se completar umaa
ouüa. Enquantoa
primeira define a esüutura de um Framework a segunda define o seu objectivo.O
WAACT pode
assim
ser
consideradoum
Toolkit
com
características de Framework.Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
3.2.
Análise
eDecisões
Durante a análise deste projecto foram surgindo diversas questões, tais como,
a quem seria o sistema disponibilizado e quem o poderia desenvolver.
Assim, como o principal objectivo é a uniformização da estrutura das aplicações em questão bem como
a
reutilizaçãode
componentesjá
desenvolvidose
validados,verificou-se
que
a
melhor forma
de
atingir
esseobjectivo
seria
através daparticipação no desenvolvimento de todos aqueles que utilizarão o sistema. Para isso,
foram
escolhidas ferramentase
linguagensde
uso
geral
e
abrangidos por licenciamento aberto, permitindo autilizaçáo e possível desenvolvimento de todos.Contudo, o uso de sistemas Open Source náo era de todo suficiente, tendo em conta que a maior parte dos profissionais destas áreas acabam por trabalhar em sistemas e
softwares proprietiirios, tendo
sido
assim necessárioa
utilizaçãode
tecnologiasmultiplataforma, bem como a criação de uma estrutura modular que permitisse um desenvolvimento contínuo e fl exível.
O
desenvolvimentodo WAACT
é
feito em
C*+ e
apoiadona
User Intedoce Framework, QT[7],
o que pennite resolver alguns dos problemas atrás referidos.lnput
DevicesOutput
DevicesComponent Compomnt Componeni
e
Event ltianager Uaer
lnterface
QT Component 1 JOperating
SystemFig. 5 -Estrutura de implementação do WAACT
Gonçalo José Cunha Fontes
-
Universidade de Évora-
Departamento de Informáticat7
l
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Por outro lado,
a
necessidadede
garantir
a
gestãodos
eventos enviados por equipamentosde Input
(podendo estesser
ratos,
teclados, intemrptores, entre outros.), processando-os e, se necessário, enviando-os para algum equipamento deOutput,
originou a
criação de uma interface Event Manager que tempor
missãotornar
os
módulos independentes dos eventos, permitindoo
isolamentode
cadalhidget, podendo estes ser desenvolvidos com
total
independência uns dos outros(Fig. s.).
3.2.1.
Linguagem de SuporteA
escolha do C++ como linguagem de suporte para este projecto, deveu-se essencialmente ao facto de esta ser uma linguagem multiparadigma, abrindo assim um leque de possibilidades à direcção que o projecto poderia levar, e ao facto de esta ser de médio nível, combinando características de linguagens de baixo e alto nível.Por outro lado, por esta tecnologia ser uma das mais populares desde os anos 90 e ter dado origem a outras linguagens mais recentes, tais como o
JAVA
e o C#, tambémestas objecto de grande popularidade, pensou-se que poderia ser uma mais-valia, uma tecnologia de conhecimento generalizado.
Por
fim, o
seu sistema de apontadores, que pode ser utilizado de forma explicita, podendoo
programador alocar expressamente memória para determinadotipo
de dados, ou de forma implícita, sendo o próprio sistema a alocar a memória que precisa (alocação dinâmica de espaço em memória), garante um excelente desempeúo na execução.3.2.2.
[Jser InterÍace QTCom
já
foi referido, um dos grandes objectivos deste projecto, prendia-se como
facto
de
este
sistemadever
permitir
um
desenvolvimento multiplataforma.Contudo,
devido
essencialmenteas
diferentes formascomo
os
vários
sistemasFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
operativos
tratam
os
eventos,
foi
necessáriooptar
por
uma
estratégia dedesenvolvimento que oferece-se garantias de continuidade.
As
duas possibilidades eram;ou
se
programavamno
Event Monager todos oseventos possíveis
para
os
diversos
sistemas operativosque se
pretendessemabrangidos,
ou
se usavaum
middlewore que permitisse a compilação em diversas plataformas.Nesta primeira versão do
WAACT,
optou-se por utilizara
User Interface QT tendo em conta as inúmeras vantagens que esta fornece.Sendo o QT desenvolvido em
C**,
este middleware permite uma grande liberdade einteroperabilidade
entre
sistemas operativos, podendoassim
ser
desenvolvidasaplicações para
as
diversas plataformas existentesno
mercado,com
recurso àversatilidade que o paradigma da programação orientada a objectos oferece.
Assim, as aplicações desenvolvidas não só podem ser implementadas com recurso às
bibliotecas
standard
do
C++
como podem
ser
programadascom
recurso asbibliotecas específicas do QT.
O QT
dispõe ainda de um mecanismo de SLOTs e SIGNALs que se podem definircomo uma alternativa às técnicas de
callback
Estas são as funcionalidades centraisdeste
sistemae
o
maior
aspecto diferenciadorde
outros
Frameworks. Estafuncionalidade permite
ligar
funções a eventos, ou funções a outras funções,o
que permite despoletar acções em qualquertipo
de evento predefinido ou em qualquer evento programado.Contudo, com esta opção não se fecham as portas a outras abordagens, podendo no futuro estas ser testadas sobre a base já desenvolvida.
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
3.3.
Conceito
O conceito por detrás do
WAACT
é bastante simples e consiste na criação dewidgets individuais
que
podem
ser
chamadosnuma
aplicação sobrea
formastandar* ou
sobrea
forma personalizada, permitindo assimao
programador do sistema em desenvolvimento, a configuração das características do referido widget (e.g. cor, dimensão, labeling, etc.).Cada módulo, ou componente identihca o widget que este representa e é composto pelas funções necessárias a sua implementação num novo projecto ou num projecto existente.
Como
já
foi
referido, os eventos fornecidos pelos utilizadores podemter
diversasorigens,
sendoque para
a
gestãodos
mesmosfoi
implementadoum
módulodenominado de Event Manager que trata cada evento fornecido
da
forma que o programador desejar.Tal
situação, fez com que os widgets que enviam eventos parao
Event Manager fossem catalogados em duas categorias:(i)
Os que interagem directamente com aMainwindow (e.g.Botão de saída da aplicação);
(ii)
Os que interagem com outroswidgets (e.g. Teclado virtual a interagir com um Processador de texto).
Action
Event
Fig. 6
-
Diagrama de Interacção entre um Widget e a Mainwindow'
Pré-definida pelo programador do moduloGonçalo José
Cuúa
Fontes-
Universidade de Évora-
Departamento de Informática 20Mainuyindow Event Manager
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Action
tu
Event
Fig.7 -Diagrama de Interacção entre um Widget e outo Widget
No
lo caso apenas é necessário fazer uma chamada à função do Event Manager qtre trata o evento pretendido (e.g. evento click) e identificar o widget que deverá receber esse determinado evento, sendo que, neste caso,o
focús da acção será sempre aMainwindow (Fig. 6).
No
2o caso, também é feita uma chamada à função do Event Manager referente aoevento pretendido,
no
entanto, neste caso devem ser definidos,o
widget que devereceber
os
eventosdo tipo
pré-definido
e
o
que
irá
despoletara
acção naMainwindow (Fig. 7).
Em qualquer um dos casos descritos, a intervenção do EventManager na utilização dos módulos do
WAACT
é essencial e deve ser imperativa, para permitir que possamser desenvolvidos novos componentes independentes dos
já
existentes, mas que possam interagir com os mesmos, sem que confudo, haja necessidades de intervenção nos módulosjá
desenvolvidos.3.4.
Estrutura
do Sistema
Desde o início que estava claro que a modularidade do sistema deveria ser o ponto de partida paÍa a implementação do mesmo, no entanto, veio a verificar-se que
Gonçalo José
Cuúa
Fontes-
Universidade de Évora-
Departamento de Informática2l
Mainwindow
Event M:rnager
Widget
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
nem todos
os
módulos deveriam ser independentes, podendo ser construída umahierarquia
de
classespermitindo
a
lutilizaçãode
determinados componentesintegrados em componentes mais abrangentes (Fig. 8).
Ewntlín.gar W_S,rryl<ey W-Wby W_W*ile
w-W__
W-fuíEí/P?ipIÍE i W_SàqpePa,ene W_roy8orrdll0ly W_fçy€oed,úp It_Keyturd W_DnwÁre€ w*turtpád W_&tton W_Cllrr,ilrf<eyturd N.inwindcwFig. 8
-
Hierarquia de Classes do WAACTPor forma a melhor perceber a integração de determinados componentes, e as suas
funcionalidades
é
apresentadaa
descriçãoe
identificação dos componentes, sendo explicada a possível utilização para cada classe desenvolvida, bem como o diagrama de classes do sistema (Fig. 9):W_DrawAreo
-
permite a instanciação de uma area de deseúo;W_TextPad
-
permite a instanciação de uma área de escrita para notetacking;W_Button
-
permite
a
instanciaçãode
botões
de
interacçãocom
aMainwindow;
W_KeyBoardKey
-
permite
a
instanciaçãode
uma tecla
Stadard oupersonalizada, podendo esta ser integrada num teclado ou não;
o
W_KeyBoardLine-
permitea
instanciação de umalinha
de teclas descritas a alinea anterior (W _Key B o ard Key);W_KeyBoard
-
permite a instanciação de um teclado formadopor as
liúas
de
teclas
descritas
a
alínea
anterior (W-!{eyBoordLine);o
o
o
Gonçalo José Cunha Fontes
-
Universidade de Evora-
Departamento de Informática 22 rFramework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
W_QwertyKeyBoord
-
permitea
instanciação de um tecladoQWERTY pre-definido ao nível da estrutura;
W_ShapeKey
-
permite a instanciação de um botão de figuras que podem ser desenhadas numa W _DrawArea;o
l/_
ShapePalette-
permite a instanciação de uma palete de botões defiguras
(W§hapeKey)
que
podem
ser
deseúadas
numa W_DrawArea;W_PencilKey
-
permite a instanciação de um botão de espessuras de deseúoutilizado
no
rendering
das
figuras que podem ser
deseúadas
numaW DrawArea;
I
o
o
o
W_ PencilPalette-
permitea
instanciação de uma palete de botões espessurasde
desenho (W-PencilKey), standardou
personalizada,sendo estes
utilizados
no
rendering das Íiguras
que
podem
serdesenhadas numa
ú/
DrawArea;lV_ColorKey
-
permitea
instanciaçãode um
botãode
cor
que pode serutilizado
no
rendering das figuras que podem ser
desenhadas numa W' DrawArea;o W_ ColorPalette
-
permite a instanciação de uma palete de botões decor
('t4_ColorKey), standard ou personalizada, sendo estes utilizadosno
rendering
das
figuras
que
podem
ser
desenhadas numaVl
DrawArea.Umas das situações de integração de componentes é o caso do teclado de ecrã que se
aprofundarmos podemos decompor
em vários
possíveis mÓdulos.Um
dessesmódulos refere-se
as
teclas, sendo queé
certo
que cadauma
delastem
a
Suaespecificidade, no entanto, na sua essência, são apenas teclas.
Gonçalo José Cunha Fontes
-
Universidade de Évora-
Departamento de Informática 23Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática « uses» USES lí_Búto,n QtustBrÍtm0 Yoad0 .ll' ,r W_Colod(ey g: ht, b: ht): ãrfSutbn{) cPll3l€|nüo OPct8uu{) :ht brdqmnrdCúr: Cxiühg. ímcdc: QSúip. bttfttrr: ht): ürtÊlq) :Irt, hdglt wiüh: irt I W_Kcy0oarf.irc ,Joid() drâm. : W_Drr&r) : AGru+8o() dus/Bs»
Fig. 9
-
Diagrama de Classes do WAACTGonçalo José Cunha Fontes
-
Universidade de Évora-
Departamento de Informática 24« USES» W TstPdf rrt 0 ,roadO Yd.,0 túr0 «use§» OColor):vq() void0 rrctd0 vo.d0 toir() :rt*10 \o.ó0 ORirÍ) voiro \toad() «U§gS» YY_PoncllKey : ,tt ôFr*l&etrrr -h,lÍrlo{Jt L}lt o{lJliorJt 'w_Kq,e!fiil-nq) *qôoadLh{}' vo.dO 'add(ry(kcy : OârhBútgt) : 'ÉtLhôO: CHEoÉauí{} l!d0
4 5 6 7 9 0 SPACE 2 3 I o P w E R T Y U ENTER, o H K L BACI(SPACE A s D t G I ç x c v N M TAB z
Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
W_KeyBoardLine
Fig. l0
-
Esquema da composição de um tecladoContudo, se avaliarmos a composição de teclas entre um teclado QWERTY3 e outro
tipo
de
teclado,verificamos
que
existem claras diferençastanto ao nível
da quantidade de teclas bem como ao nível da disposição da grelha das mesmas, o que podedificultar
a construção de um novo teclado, se não existirem mecanismos depersonalização.
Na área da
CAA
a consffução de teclados personalizados é uma prática corrente eessencial para que
o
utilizador possatirar o
maior partido possível do sistema que está a utllizar, sendo que nestas circunstâncias os componentes devem ser adaptáveis às especificidades e limitações de cada pessoa.Assim, como poderia ser complexa
a
implementaçãoe
organizaçáo deum
novoteclado, podendo este
ter
mais
de 25
teclas,e
nem
sempre estando alinhadas,verificou-se ainda que para além de um componente tecla e um componente teclado
iria ser necessário um componente intermédio que permitisse
a
implementação umaestrutura de
várias
deliúas
de teclas por forma a formar a personalizar o teclado(Fig.
l0).
Com base na mesma estrutura, foram implementadas outras classes simples as quais são integráveis em componentes mais abrangentes, como
é
o
caso dos botões de'
Disposição de teclado adoptada pelos países ocidentaiska
Gonça1oJoséCuúaFontes-UniversidadedeÉvora_DepartamentodeInformática
t-Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
cores e tamaúos de linha que podem ser implementados em componentes de paletes, podendo estas ser Standard ou personalizadas (Fig. I
l).
W-PencilPalette
W-KeyPencilKey
Pencil Palene a o o aoaa
Color PaleneIIIIIIIIIII
I
W_ColorKeyW_ColorPalette
Fig. I I
-
Esquema da composição das paletes de cores e espessura de linhaPor
fim,
por forma a poder diferenciar de uma forma clara e simples as funções doWAACT
comparativamente com as funcionalidadesdo
C**
ou
do próprioQT,
onome das classes
foi
definido com
uma estrutura específica, tendo todas elas oprefixo "'W_" antes do nome que as descreve.
Assim, para além
de
haver uma clara distinção entre as classes que podem serutilizadas, esta estrutura permite-nos, que utilizando
um
IDE
de desenvolvimento sejam listados todos os widgets disponíveis no sistema.3.5.
Utilização
eFuncionamento
Como
já
foi
referido,foi
necessária a utilização de um middleware que fossemultiplataforma, de forma a não restringir a utilização de software desenvolvido a
um determinado sistema, tendo sido o QT a plataforma escolhida.
Esta escolha permite alguma flexibilidade ao programador, pois como também
já
tor referido, este poderá desenvolver utilizando varias tecnologias.Gonçalo José
Cuúa
Fontes-
Universidade de Évora-
Departamento de Informática 26Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Por outro
lado,
o
QT
disponibiliza
um
IDE
de
desenvolvimento também ele multiplatafoÍrna e abrangido, se o programador assim o entender, pelo licenciamento GLPL.O
Qf
Creator
IDE(Fig.
12)
é
uma
plataformade
desenvolvimentode
simplesutilização e instalação, que peÍmite a programação em
C.l*
puro ou com recurso asbibliotecas especificas do QT, permitindo a criação de classes isoladas para integrar em projectos existentes, ou a criação de novos projectos de bibliotecas, aplicações de consola
ou
ainda aplicações gráficas,o
que encaixa perfeitamente nafilosofia
dedesenvolvimento pensada para o WAACT.
Contudo, a flexibilidade
já
referida, com a utilização de várias tecnologias pode ser confusa parao
programador,o
que em vez de aumentara
sua produtividade pode diminui-la.Tendo em vista esta situação, pensa-se ser importante proporcionar aos utilizadores
do WAACT
uma
metodologiade
implementaçãomais
direccionadae
que
não obrigue a utilização de todas as tecnologias disponíveis na plataforma.m.in.(pp - WA^CT
Í=l =l
lrl
Fig. l2
-
Qf Creator IDEcvtntmrnrgcr.h m.inwindow.h w_button.h w-colortsy.h w-colorpelettt.h w_dreweree.h w-hqyboerd.h w-kcvboardkcy.h w-kcyboerdlinc.h w_kcyprcss.h w-pcncilky,h w_pcncilgelctrc.h r-qwcrtykryboerd.h w-rlnpckey.h w_rhepepelcnc.h w-she9crcodcr.h w-shrP.s.h w-tcxtp.d.h E Sourtcs - evantmrnager.(pp lllhrp meinwinda.cpp w-button.cpg w_colorkcy.cpp w_colorpelcnc.cpg w_drewlrcacpp w-kcyboerd.cpp w_kcyboerdkcy.(pp C++ Hcedcr Filc C++ Sourcc Filc C++ Clecc Vcrsion Comrol CVS Chcclout Git Rrporitory Clonc Citorious Rrpor itory Clone Subvcrsion Chcclout o Qr Dcrigncr Form Qt Ch:igncr Form Clrss (lt CPIL til. Qt kriil filc Qt Rcsourrc fflr ProjCctt
! lmport oí Melcfih-ber.d Proi.ct I CUL Apphctt,on I tmport oí Gxirting QllL diructory E Empty Qttl Projcct A Qt4 GuiApplicetion I (lta Conrolc Applicrtion e C++ Ubrery
tr Qta Dcrigncr Cu3tom Widgct
(odclcrG CrorE eroc. Ocetof anmrtcn. lincludc <QApr Ccncrel
B
Cenccl w-kc?prcrr.cpp w-6ncilkcy.<pg w-pcncilpelcttr.<pp w_qrcrtykcyboerrd.cpg w_shepckey.cpp w_shepcpdcnc.(pp ,t nc I udcQApp'l rcotr,on ogg(orgc, orgv);
Crretcs r text ffh (.txt). roi n( . orgv [] ){ w_shepcrcndcr.<pp w_rhepcs.rpp w_lrxtpad.(pp li nc I udc It nc Iudc íi nc I udc tr nclude íincludc Ioiafindc nndor; rindo:. rtror(); -"1 .rr (rlry,. CICC(); lincludc It ncludc lr ncludc li ncl udc ,includc Jr nc I udc li ncludt lincludc !rncIudc dinclude ri nc I udc tr, ncl udc li nc I udc ti ncludc linclude li ncludc ,i,âcludc úf
I
Ee
taD
E-tr
?
ItGonçalo José
Cuúa
Fontes-
Universidade de Évora-
Departamento de Informática 273 Unc: l, Col: I h iLü... <QtGur > <Qlrush> <QPo r nt cr> <Qf I lct <QÍcrtSt rca> 'r-kcyboordkcy. h' 'r-qrartykcybooÊd . h' 'r- kcy'boordl rnc. h' 'r-l:yüoord. h' 'r-t.rtrod. h' 'r-tcygrcrr . h' 'r-button . h' 'r-rerúcrorco . h" 'r-rh@cr.h' 'r-rhopcrendcr . h' "r-drororco. h' "oorlrindor. h' n:
-Framework para desenvolvimento de Sistemas de CAA - Mestrado em Engenharia Informática
Assim, numa óptica
de
programação orientadaa
objectos, foram envolvidas nasfunções
já
existentes mecanismos que permitissem absorver as bibliotecas do QT,para que
o
programador apenas programeem C++ com
recursoao
WAACT,libertando-o de mais uma tecnologia.
Nesta primeira versão acabaram por não ser absorvidas todas as funcionalidades do
QT,
tendo
no
entantohavido
a
preocupaçãode
garantir que
na
utilização
decomponentes do
WAACT
apenas fosse necessário a utilização de funções próprias.No
entanto nesta versão, acabam por ser necessárias algumas funções do QT que selimitam apenas a garantirem a organização e "paginação" na Mainwindow.
A utilização do
WAACT
é muito similar a progÍamação praticada noutras linguagens que recoÍTem a orientação por objectos.Na Fig.
13
demonstra-sea
instanciaçãode três
objectostecla que
não
estão integrados emneúum
teclado. Em cada uma destas teclas é aplicada, em seguida àsua
instanciação,
uma
característica,
sendo
que
no
caso
da
primeiraIl'_KeyBoardKey, que é designada por
k|,
apenas é definido que esta será uma tecla standard e que terá como label o caractere"4"
e como output o caractere "a".Na segunda W_KeyBoardKey, designada por k2, é aplicada a função keySized) que para além das características atrás definidas permite personalizar o tamanho da tecla.
/
/
KeyBoordKey Stondordt-KeyBoordl(ey 'k1
r
new f,-KeyBoordXeyO;k1->keyStondord("A", "o") I
//
KeyBoordKey thotollot
o resizedof
the keyI-KeyBoordKey rkz
r
ner. f,-KeyBoordKeyO;k2->keySized("B",
"b",
50, 50);/
/
KeyBoordKey thot ol lorr o resi zedof
the key ond o look custoni zotion l-KeyBoordKey rk3-
neÊ t-KeyBoordXeyO;k3->keyCustoaized("C", oc", 70, 70.
"yellot",
"red",
22)iFig. l3