Escolar Documentos
Profissional Documentos
Cultura Documentos
DISSERTAO DE MESTRADO
ORIENTAO
Fernando Manuel Rosmaninho Morgado Ferro Dias
2|Pgina
RESUMO
Esta tese descreve o desenvolvimento de duas aplicaes de software cujo objetivo consiste em
demonstrar o funcionamento de duas ferramentas base de Sistemas Digitais.
A primeira aplicao, denominada KarnUMa, pretende demonstrar o funcionamento dos Mapas de
Karnaugh, que so utilizados na simplificao de expresses algbricas Booleanas. Esta aplicao est disponvel
em duas verses com destino a duas plataformas distintas: a primeira KarnUMa, disponvel para computador, e
a segunda Pocket KarnUMa, disponvel para terminais mveis sob a forma de Midlet ou Android Package.
A segunda aplicao desenvolvida, denominada ParTec, ter como objetivo demonstrar o
funcionamento da Tcnica das Parties, que utilizada na eliminao de estados redundantes nas mquinas de
estados. Esta segunda aplicao tem apenas o computador como plataforma de destino.
Este documento conta com um levantamento das aplicaes atualmente existentes nas reas de
interesse, uma descrio das tecnologias utilizadas no desenvolvimento do software, uma apresentao desse
mesmo software descrevendo o que este tem de inovador e por fim uma descrio da forma como as aplicaes
foram publicadas.
3|Pgina
ABSTRACT
This thesis describes the development of two software applications whose purpose is to demonstrate
the operation of two common Digital Systems tools.
The first application, called KarnUMa, aims to demonstrate the operation of Karnaugh maps, which are
used to simplify Boolean algebra expressions. This application is available in two variants with different target
platforms, the first, KarnUMa available for computer and the second Pocket KarnUMa available for mobile
terminals in either Midlet or Android Package.
The second application, called ParTec, aims to demonstrate the operation of the Partitions Technique,
which is used in the elimination of redundant states in state machines. This second application has only the
computer as target platform.
This document includes a survey of the currently existing applications in the fields of interest, a
description of the chosen technologies to develop the software, a presentation of this same software identifying
its innovations and finally a description of how the applications were published.
4|Pgina
AGRADECIMENTOS
Em primeiro lugar gostaria de agradecer ao meu orientador pelo apoio e prontido demonstrados ao
longo do desenvolvimento deste projeto. Sem a sua orientao e partilha de conhecimentos no me teria sido
possvel completar este projeto.
Gostava tambm de agradecer a todos os meus familiares e amigos e oferecer as minhas saudaes a
todos aqueles que de uma maneira ou outra me apoiaram durante a execuo deste projeto.
Por fim, vai o meu agradecimento a todos aqueles que dispensaram parte do seu tempo nos testes
realizados s aplicaes aqui desenvolvidas.
5|Pgina
6|Pgina
NDICE
Resumo ....................................................................................................................................................................... 3
Abstract ...................................................................................................................................................................... 4
Agradecimentos.......................................................................................................................................................... 5
ndice .......................................................................................................................................................................... 7
Introduo ................................................................................................................................................................ 11
Glossrio ................................................................................................................................................................... 13
Acrnimos................................................................................................................................................................. 14
1.
1.1.1.
1.1.2.
1.1.3.
1.1.4.
1.1.5.
1.1.5.1.
1.1.5.2.
1.1.6.
2.
1.2.
Algoritmo de Quine-McCluskey................................................................................................................ 25
1.3.
1.3.1.
1.3.2.
E-Learning ................................................................................................................................................. 35
2.1.1.
2.1.2.
2.1.3.
2.1.4.
2.1.5.
2.2.
M-Learning ............................................................................................................................................... 39
2.2.1.
2.3.
2.3.1.
2.3.1.1.
2.3.1.2.
2.3.1.3.
KarnaughMap (KM).................................................................................................................. 42
2.3.1.4.
2.3.1.5.
2.3.1.6.
2.3.1.7.
Karma ....................................................................................................................................... 43
2.3.1.8.
Boole-Deusto ........................................................................................................................... 44
2.3.1.9.
2.3.1.10.
2.3.1.11.
2.3.1.12.
2.3.2.
2.4.
3.
Concluso................................................................................................................................................. 47
Desenvolvimento do software......................................................................................................................... 49
3.1.
3.1.1.
3.2.
3.2.1.
3.2.1.1.
3.2.1.2.
3.2.1.3.
3.2.1.4.
3.2.1.5.
3.2.1.6.
3.2.2.
3.3.
Requisitos ParTek.......................................................................................................................... 52
3.2.2.1.
3.2.2.2.
3.3.1.
3.3.2.
3.3.3.
3.3.4.
ParTec .............................................................................................................................................. 61
8|Pgina
3.4.
Anlise de Tarefas..................................................................................................................................... 64
3.5.
3.5.1.
3.5.2.
3.5.3.
ParTec ............................................................................................................................................... 76
3.6.
4.
3.6.1.
3.6.2.
Aplicao ParTek............................................................................................................................... 80
4.1.1.
4.1.2.
4.1.3.
4.1.4.
4.2.
5.
Concluso ................................................................................................................................................. 89
5.2.
Concluso ................................................................................................................................................................. 95
Referncias ............................................................................................................................................................... 97
Anexos .................................................................................................................................................................... 101
Anexo A............................................................................................................................................................... 101
Anexo B ............................................................................................................................................................... 109
Anexo C ............................................................................................................................................................... 117
9|Pgina
10 | P g i n a
INTRODUO
Na ltima dcada tem-se verificado uma constante evoluo no que aos computadores e terminais
mveis diz respeito. Como tal tornou-se vantajoso utilizar estas novas tecnologias, que atualmente fazem parte
do nosso dia-a-dia, como fontes de informao na rea do ensino. Estas tecnologias tm demonstrado grande
potencial quando aproveitadas para fins pedaggicos.
O trabalho desenvolvido nesta tese tem como objetivo desenvolver aplicaes capazes de auxiliar na
tarefa de ensinar a metodologia dos mapas de Karnaugh e da Tcnica das Parties. Ao desenvolver uma
aplicao com a qual se pretende facilitar a compreenso dos mapas de Karnaugh, esta no se deve limitar
apresentao de resultados, mas sim, ser capaz de demonstrar como so alcanados tais resultados. Levando
isto em considerao, esta aplicao deve ser capaz de exibir todo o processo da resoluo de um mapa de
Karnaugh, bem como fornecer informao detalhada sobre cada passo deste processo. Um outro aspeto
importante no ensino a componente prtica, como tal, aplicao deve permitir que o prprio utilizador possa
executar o processo de resoluo do Mapa de Karnaugh.
No que aplicao sobre a Tcnica das Parties diz respeito, tambm se pretende uma aplicao capaz
de algo mais do que simplesmente apresentar o resultado final. O objetivo para esta aplicao passa igualmente
por demonstrar o processo de resoluo de forma detalhada.
Com a finalidade de aumentar exposio destas aplicaes foi elaborado um artigo para a 10
conferncia Portuguesa de Controlo Automtico Controlo12, que se realiza no Funchal entre os dias 16 e 18
de Julho com a organizao da Universidade da Madeira. O artigo j foi revisto e aceite e ser apresentado
durante a conferncia.
A motivao para este trabalho reside em desenvolver software a partir do qual o utilizador possa
aprender a utilizar as ferramentas de Sistemas Digitais j referidas bem como testar os conhecimentos
adquiridos.
Ao longo dos captulos seguintes sero apresentados as vrias etapas do desenvolvimento destas
aplicaes.
11 | P g i n a
12 | P g i n a
GLOSSRIO
Android Sistema Operativo desenvolvido pela Google destinado a terminais mveis.
Classe Estrutura de dados com a capacidade de abstrair um conjunto de objetos de caractersticas idnticas.
Esta classe ser responsvel por definir os comportamentos dos seus objetos atravs dos mtodos que nela
esto definidos.
Download Refere-se ao ato de descarregar ficheiros de um computador remoto para um computador local.
Framework Conjunto de conceitos que so comuns a vrios projetos de software que so fornecidos numa
funcionalidade genrica. Como acontece numa API, a framework tambm contm um conjunto de mtodos a
serem utilizados na programao, mas distingue-se desta por ser responsvel por definir o fluxo de controlo da
aplicao.
Hipertexto Refere-se ao texto em formato digital acedido via internet, do qual podem fazer parte blocos de
texto, imagens ou sons.
Java Linguagem de programao orientada a objetos.
Midlet Aplicao JAVA para terminais mveis. Estas aplicaes normalmente destinam-se a telemveis e
funcionam em mquina virtual Java ME.
Site Consiste num stio eletrnico, que no mais que um conjunto de pginas web, ou seja, hipertextos que
obedecem ao protocolo http da Internet.
Software Produto da Engenharia de software, constitudo no s pelo programa de computador mas tambm
por toda a sua documentao (manuais, especificaes,).
Storyboard Consiste numa sequncia de ilustraes com a finalidade de pr-visualizar o funcionamento de
uma aplicao.
Superclasse Classe abstrata que define um modelo. Uma superclasse contm um implementao incompleta
sendo da responsabilidade das classes que dela derivam, completar a implementao e adicionar o seu
comportamento especfico.
Template Em web design um template consiste na disposio em que so apresentados os contedos de uma
pgina web.
Verilog Linguagem de Descrio de Hardware utilizada para modelar circuitos eletrnicos.
Web Word Wide Web ou WWW um sistema de documentos de hipertexto acedidos via Internet.
13 | P g i n a
ACRNIMOS
API Application Programming Interface (ou Interface de Programao de Aplicativos). Consiste num conjunto
de rotinas e padres na forma de funes a serem utilizadas na programao. Na sua utilizao no existe
preocupao com os detalhes da sua implementao, apenas com os seus servios.
CMS Content Management System. um sistema informtico no qual possvel editar, publicar e modificar os
contedos de uma pgina web. A gesto de contedos realizada numa pgina central paralela ao contedo a
ser publicado.
IDE Do ingls Integrated Development Environment ou Ambiente Integrado de Desenvolvimento. Consiste num
programa de computador com o objetivo de aumentar a eficincia no processo de desenvolvimento de
software.
ISS Do ingls Internet Information Services um servidor web desenvolvido pela Microsoft.
LDH Linguagem Descritiva de Hardware. Esta a denominao utilizada para as linguagens utilizadas na
descrio formal e design de circuitos eletrnicos.
PDF Do ingls Portable Document Format. Desenvolvido pela Adobe Systems em 1993, este um formato para
a escrita de documentos que tem com objetivo a visualizao de documentos independentemente da aplicao,
Sistema Operativo e Hardware utilizados.
VHDL Do ingls VHSIC Hardware Description Language, uma LDH utilizada para modelar circuitos eletrnicos.
VHSIC Do ingls Very-High-Speed Integrated Circuits, foi um programa do governo Norte-americano que teve
uma forte contribuio no surgimento do VHDL.
14 | P g i n a
A equao booleana apresentada tem duas variveis negadas (A e B), uma negao significa que uma
afirmao verdadeira passa a falsa e vice-versa, ou seja, se A tinha valor lgico 1 ao ser negada ( ) passou a ter
valor lgico 0. Tambm possvel observar a presena de operadores lgicos, existe uma conjuno em
e
uma disjuno em
. A uma Conjuno pode-se tambm chamar Produto Lgico ou AND e a uma
Disjuno pode-se chamar Soma Lgica ou OR (Srro, Carvalho, & Arroz, 2005).
Para o mbito deste projeto no ser necessrio explorar em mais detalhe a lgebra de Boole e as
funes lgicas.
b) Tabelas de Verdade
Uma tabela de verdade consiste numa listagem de todos as possveis entradas e correspondentes sadas
de um circuito lgico, ou seja, uma tabela da qual se pode extrair a informao de como as sadas de um
circuito lgico dependem das entradas. Comeando por analisar uma pequena tabela de Verdade (Tabela 1)
para um circuito lgico de duas entradas. Esta tabela contm todas as combinaes possveis para os valores
lgicos de entrada A e B, e os correspondentes valores de sada F. Os valores de sada dependero dos valores
de entrada e do tipo de circuito lgico. Por exemplo pode-se verificar na Tabela 2 que quando ambas as
entradas A e B tm valor lgico 0, a sada F ser igualmente 0. A Tabela 2 consiste numa tabela de verdade para
um circuito lgico de 3 entradas, onde novamente pode-se verificar todas as possveis combinaes de entradas
15 | P g i n a
e correspondentes sadas, mas neste caso existem mais quatro combinaes possveis do que na tabela de 2
entradas.
Para uma tabela de verdade de 2 entradas existem 4 combinaes possveis, para uma de 3 entradas
existem 8 combinaes possveis e para uma de 4 entradas existiriam 16 combinaes possveis, ou seja o
nmero de combinaes possveis das variveis de entrada ser igual 2N, sendo N o nmero de entradas do
circuito lgico que a tabela de verdade representa. Note-se tambm que as combinaes possveis aparecem
seguindo a contagem binria o que torna a listagem de todas as combinaes mais simples (Tocci & Widmer,
2001).
C/AB
0
1
00
0
4
01
1
5
11
3
7
AB/C
00
01
11
10
10
2
6
Cdigo de Gray Cdigo binrio inventado por Frank Gray, no qual de um nmero para o seguinte apenas um bit varia (Doran, 2007).
16 | P g i n a
AB/CD
00
01
11
10
CD/AB
00
01
11
10
00
00
12
01
01
13
11
12
13
15
14
11
14
11
10
11
10
10
15
10
Uma vez analisada a Fig. 1 pode-se observar que um mapa com 3 variveis de entrada pode ser
desenhado na horizontal ou na vertical, sendo que quando desenhado na horizontal a ordem das variveis de
entrada distinta de quando desenhado na vertical. O mesmo sucede num mapa com 4 variveis de entrada,
em que a ordem destas mesmas pode ser disposta de duas formas, como possvel verificar pela Fig. 2. De
referir que a alterao da ordem das variveis de entrada provoca igualmente uma alterao da ordem das
posies das clulas do mapa.
Observe-se o exemplo da Fig. 3 que representa uma tabela de verdade para uma funo lgica de 3
entradas (A,B e C).
Neste exemplo pode-se analisar como feito o preenchimento de um mapa de Karnaugh. Cada clula do
mapa corresponde a um valor de sada de uma certa combinao de entradas. A azul na tabela de verdade est
o nmero decimal correspondente combinao de entradas em binrio, por ex.: 0 000, 1 001; assim a
partir destes nmeros pode-se observar no primeiro mapa de Karnaugh da Fig. 3 que combinao corresponde a
cada clula. J no segundo mapa da Fig. 3 est representado em cada clula o valor da funo para a
combinao correspondente.
Na Fig. 4 possvel verificar que Minitermo corresponde a cada posio do mapa de Karnaugh, neste
caso para 3 variveis de entrada.
17 | P g i n a
Fig. 4 - Mapa de Karnaugh de 3 variveis de entrada, com os Minitermos correspondentes a cada clula do mapa.
Observe-se o mapa de Karnaugh da Fig. 5 onde esto assinalados dois Implicantes a verde e a vermelho.
No Implicante vermelho pode-se verificar a adjacncia entre os termos das extremidades direita e esquerda,
sendo este constitudo por 22 = 4 termos. J o implicante a verde formado por 21=2 termos que so adjacentes,
pois esto lado a lado.
Analisando agora os mapas da Fig. 6 pode-se verificar que no mapa da esquerda existe um Implicante
corretamente formado de 22=4 termos sendo todos estes adjacentes, j no mapa da direita ainda que seja
constitudo por 21=2 termos, ou seja uma potncia de 2, este no est corretamente formado pois os termos
no so adjacentes.
18 | P g i n a
Os termos e
no so adjacentes pois diferem em 2 variveis
deste mapa no est corretamente formado.
, logo o implicante
O Implicante formado corresponde a todos os termos existentes neste mapa, e extraindo a sua frmula
simplificada obtm-se . Para chegar a esta simplificao retiram-se as variveis que mudam de valor dentro
de todos os termos utilizados pelo Implicante, ou seja, nos quatro termos deste Implicante as variveis que
mudavam de valor eram A e C, logo estas foram retiradas ficando-se com .
)
19 | P g i n a
A diferena que na Soma de Produtos cada grupo formado corresponde a um produto na frmula (por
).
ex.: ), j no Produto de Somas cada grupo formado corresponde a uma Soma na frmula (por ex.:
Fig. 7 - Mapa de Karnaugh de 4 variveis com todos os implicantes Primos assinalados e respetiva frmula.
Fig. 8 Mapa de Karnaugh de 4 variveis com todos os implicantes Primos assinalados e identificao dos Primos Essenciais.
20 | P g i n a
Implicante Primo Essencial Consiste num implicante Primo que implica um termo de valor lgico 1,
que no coberto por nenhum outro Implicante.
Fig. 9 - Mapas de Karnaugh de 4 variveis com todos os implicantes Primos assinalados e identificao dos Primos Essenciais
1.1.5.1.
Alguns mapas de Karnaugh podem no conter Implicantes Primos Essenciais. Nestes casos para chegar
soluo mnima deve-se identificar todos os Implicantes Primos e posteriormente escolher para a soluo
somente os necessrios para que todos os termos sejam implicados, tendo como objetivo o mnimo de
implicantes possveis, com o mnimo de variveis para se atingir a soluo Mnima. A Fig. 10 representa um
21 | P g i n a
exemplo de um mapa de Karnaugh sem Implicantes Primos Essenciais. No mapa da esquerda esto todos os
Implicantes Primos identificados enquanto os mapas da direita apresentam as duas possveis solues deste
mapa, com os Implicantes Primos necessrios.
Fig. 10 - Mapa de Karnaugh de 4 variveis cuja soluo no tem implicantes Primos Essenciais.
1.1.5.2.
A resoluo de Mapas de Karnaugh pela forma do Produto de Somas em quase tudo semelhante
forma Soma de Produtos (forma que at agora tem sido utilizada nos exemplos). As diferenas so as seguintes:
A soluo mnima ser dada por um Produto de Somas, sendo que cada Implicado corresponder a
uma soma.
A Fig. 11 representa um exemplo de uma soluo do mapa de Karnaugh pela forma do Produto de Somas, como
pode-se constatar, cada Implicado dado por uma soma sendo a soluo dada pelo produto de todas as somas.
22 | P g i n a
) (
) (
)(
Levando em considerao esta nova adjacncia so obtidos os Implicantes assinalados na Fig. 13. Podese constatar que os implicantes
e
beneficiam desta nova adjacncia, visto que esto na mesma
posio em ambos os mapas. Pode-se ainda verificar que os Implicantes formados num nico mapa tero a
varivel E com o valor correspondente ao mapa em que se encontram. Se est no mapa em que
, a
e . No caso do
expresso do implicante ter a varivel E negada como o caso dos Implicantes
,
implicante ser formado no mapa em que
, o Implicante ter a varivel E positiva como acontece com
por fim se o Implicante ocupar ambos os mapas a varivel E retirada uma vez que esta difere em ambos os
mapas, como acontece com
e .
23 | P g i n a
Fig. 13 - Mapas de Karnaugh para funo lgica de 5 variveis com os implicantes assinalados.
Para se simplificar uma funo lgica de seis variveis so utilizados quatro mapas de Karnaugh como
pode-se observar na Fig. 14. Nestes mapas existe adjacncia entre os termos das mesmas clulas como acontece
nos mapas de cinco variveis sendo esta adjacncia presente entre os mapas posicionados esquerda/direita e
acima/abaixo, ou seja, os mapas posicionados diagonalmente no so adjacentes. ainda possvel verificar que
os mapas de cima tero
, os de baixo
, os da esquerda
e dos da direita
.
A Fig. 15 representa os mapas de Karnaugh para uma funo lgica de 6 variveis com os implicantes
devidamente assinalados e a respetiva soluo.
24 | P g i n a
Fig. 15 - Mapas de Karnaugh para funo lgica de 6 variveis com os implicantes assinalados.
25 | P g i n a
ficaria na seco de Minitermos com dois 1s. Deste modo obtm-se a Tabela 4 a qual contm todos os termos
de valor lgico 1 ou indiferente (X), organizados pelo nmero de 1s (Dias, 2010).
Minitermo
0
1
2
3
4
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
5
6
7
8
9
10
11
12
13
14
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
X
1
1
15
Tabela 3 - Tabela de verdade para uma funo Lgica a simplificar pelo Algoritmo de Quine-McCluskey.
ndice
(Nmero de 1s)
1
Minitermo
Representao
Binria
M1
M2
M4
M5
M6
M12
M7
M13
M14
0001
0010
0100
0101
0110
1100
0111
1101
1110
26 | P g i n a
1 Iterao
Comparaes
Minitermos
ndices
M1 e M5
M2 e M6
1e2
M4 e M5
M4 e M6
M4 e M12
M5 e M7
M5 e M13
M6 e M7
2e3
M6 e M14
M12 e M13
M12 e M14
2 Iterao
Resultado
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
-
1 *
0 *
0
0
1
1
0
0
Minitermos
M4, M5, M6 e M7
M4, M5, M12 e
M13
M4, M6, M12 e
M14
Resultado
Seguidamente dever ser executado o mesmo processo, mas neste caso comparando as simplificaes
obtidas, as de ndices 1 e 2 com as de 2 e 3 e assim sucessivamente caso houvessem ndices maiores. Desta
comparao devem novamente ser simplificados os termos que forem adjacentes, note-se que nesta iterao
mais simples verificar os termos adjacentes, visto que estes sero adjacentes se tiverem o trao (-) na mesma
posio.
No caso deste exemplo apenas estas iteraes so necessrias para completar o 2 passo, na
eventualidade de existir um maior ndice de 1s, mais iteraes poderiam ser necessrias.
Quando se verificar que no possvel executar mais nenhuma iterao, devem-se assinalar com um *
os termos que no foram utilizados em nenhuma associao, o que inclui todos termos resultantes da ltima
iterao uma vez que no feita mais nenhuma associao sobre estes.
utilizado pelo Implicante Primo em questo. A Tabela 6 consiste na tabela de Implicantes Primos, estando os
Implicantes Primos Essenciais assinalados com uma estrela ( ). Note-se ainda que o Maxitermo M12 tem a sua
coluna assinalada a cinzento, isto porque como este termo tem valor lgico indiferente, no deve ser
contabilizado na procura por implicantes Primos Essenciais. Olhando para a tabela e posteriormente
identificao dos Implicantes Primos Essenciais, segue-se a escolha dos Implicantes Primos a utilizar de forma
idntica ao que acontecia nos Mapas de Karnaugh. Os Primos Essenciais tero que fazer parte da expresso
lgica simplificada e posteriormente verifica-se se estes so suficientes para implicar todos os Maxitermos da
funo. Na eventualidade se serem suficientes, significa que atingiu-se a frmula simplificada, caso contrrio
escolhem-se o ou os Implicantes Primos necessrios a utilizar levando sempre em considerao os critrios
referidos anteriormente para que se obtenha uma soluo Mnima (Dias, 2010).
Implicantes
Primos
M1
M2
M4
M5
M1 e M5
0 - 0 1
M2 e M6
0 - 1 0
M4, M5, M6 e M7
0 1 - -
- 1 0 -
- 1 - 0
M6
M7
M12
M13
M14
X
X
X
X
X
X
X
Seguindo os critrios referidos e uma vez que todos os Implicantes Primos encontrados so Essenciais a
soluo dada por:
Ainda que no exemplo utilizado para a demonstrao do Algoritmo de Quine-McCluskey, tenha sido
aplicado de modo a se obter a soluo na forma de Soma de Produtos, ou seja fazendo uso dos Minitermos, este
algoritmo pode ser igualmente aplicado caso de pretenda obter a soluo na forma de Produto de Somas. Para
tal basta considerar os Maxitermos em vez de Minitermos, seguindo exatamente os mesmos passos.
28 | P g i n a
Para o mbito deste trabalho dois tipos de mquinas de estados foram considerados, as Mquinas de
Moore e as Mquinas de Mealy, cujos criadores so E. F. Moore e G. H. Mealy respetivamente. A diferena entre
estas mquinas reside no facto de que, na mquina de Moore, o valor de sada de cada estado depende
somente do estado atual, enquanto na mquina Mealy a sada depende do estado atual, mas tambm da
entrada (Dias, 2010). A Tabela 7 corresponde a uma mquina de Moore com uma entrada e uma sada e a
Tabela 8 diz respeito a uma mquina de Mealy de uma entrada e uma sada.
Estado Actual
Sada
Estados Seguintes
X=0
X=0
Estado Actual
Estados Seguintes
X=0
X=0
B/0
E/1
B/1
C/1
E/0
A/1
A/0
A/0
B/0
A/1
As mquinas de estados podem ser representadas na forma de tabelas, mas podem ainda ser
representadas sob a forma de diagrama de estados. As Fig. 16 e Fig. 17 representam os diagrama de estados
correspondentes s Tabela 7 e Tabela 8 respetivamente.
29 | P g i n a
As mquinas de estados podem variar no nmero entradas e de sadas. O nmero de entradas tem uma
relao diretamente proporcional com nmero de estados seguintes, por exemplo: 1 entrada d origem a 2
estados seguintes, 2 entradas d origem a 4 estados seguintes, 3 entradas d origem a 8 estados seguintes, ou
seja, N entradas d origem 2N estados seguintes, embora possam existir situaes em que h combinaes das
entradas que no so possveis, reduzindo assim o nmero de estados seguintes possveis. A Fig. 18 representa
uma Tabela de estados com 2 entradas e consequentemente 4 estados seguintes.
30 | P g i n a
O nmero de variveis de sada, por outro lado, tem uma relao direta com a quantidade de valores
disponveis para as sadas visto que para N variveis de sada esto disponveis 2N valores possveis para a sada.
Na Fig. 19 possvel verificar que para 2 variveis de sada esto disponveis 4 valores possveis (00, 01, 10, 11)
para a sada, embora tambm aqui possam existir combinaes de sada que no so utilizadas.
31 | P g i n a
3. Atualizar as Parties, ou seja, os estados identificados no passo anterior daro origem a uma nova
Partio;
4. Repetio dos passos 2 e 3 at que no seja possvel proceder a mais nenhuma alterao na tabela.
A Tabela 9 representa a aplicao do 1 passo. Como se pode verificar foram identificadas 3 Parties, a
primeira Partio com sada a 0 e 1, composta pelos estados AB e E. A segunda partio com sada a 1 e
1, composta pelo estado B. Por fim a terceira Partio com sada a 0 e 0, composta pelo estado D.
Estado Actual
Estados Seguintes
X=0
X=0
B/0
E/1
E/0
A/1
B/0
A/1
B/1
C/1
Partio 2 (P2)
A/0
A/0
Partio 3 (P3)
Partio 1 (P1)
Uma vez identificadas trs Parties iniciais aplica-se o passo 2, do qual se obtm a Tabela 10. Como
possvel verificar na Partio 1 foi identificado um estado que transita para Parties diferentes dos
restantes estados. O Estado C transita em ambas as situaes para a Partio 1, enquanto os estados A e
E transitam para as Parties 2 e 1.
Tendo identificado o estado C como um estado distinto dos restantes estados da mesma Partio,
verifica-se que o estado C d origem a uma nova Partio como se pode ver pela Tabela 11.
importante referir que todos estados que transitavam para o estado C devem ser atualizados igualmente
com a designao da nova partio como se pode ver no estado B.
Estado Actual
Estados Seguintes
X=0
X=0
A1
B2
E1
C1
E1
A1
E1
B2
A1
B2
B2
C1
D3
A1
A1
32 | P g i n a
Nova partio
Estado Actual
Estados Seguintes
X=0
X=0
A1
B2
E1
E1
B2
A1
B2
B2
C4
D3
A1
A1
C4
E1
A1
Nova partio
Segue-se o passo 4, que consiste em repetir os passos 2 e 3 at que no se verifique mais nenhuma
alterao na tabela.
Uma vez que, para esta tabela, no possvel proceder a mais nenhuma alterao resta criar a tabela
resumida a partir da Tabela 11. A tabela resumida (Tabela 12) consiste numa tabela em que cada partio d
origem a um nico estado equivalente, ou seja todos os estados de uma partio resumem-se a somente um
estado sada (Dias, 2010). Os estados A e E daro origem ao estado , o estado B dar origem a , o D a e
finalmente o C a .
Estado Actual
Estados Seguintes
X=0
X=0
/0
/1
/1
/1
/ 0
/0
/0
/1
Tabela 12 - Tabela resumida que obtida posteriormente aplicao da Tcnica das Parties.
33 | P g i n a
34 | P g i n a
2. ESTADO DE ARTE
Esta dissertao tem como objetivo o desenvolvimento de duas ferramentas de software, para PC e para
terminais mveis, com fins pedaggicos na rea de Sistemas Digitais relevante analisar em que rea da
Informtica se insere este trabalho, assim como investigar o trabalho desenvolvido at ao momento dentro do
mesmo mbito.
As aplicaes a desenvolver neste trabalho tm por objetivo oferecer ao seu utilizador uma forma de
adquirir conhecimentos fazendo uso das tecnologias, neste caso particular dos computadores e dos terminais
mveis. Levando em considerao os fins pedaggicos das aplicaes a desenvolver e a forma como estas
chegam ao utilizador final, torna-se possvel inseri-las no mbito do E-Learning (Electronic Learning).
2.1. E-LEARNING
E-Learning um termo estrangeiro utilizado para se referir a aprendizagem eletrnica ou formao
distncia via Internet (Cao & Dias, 2003). So vrias as definies existentes para E-Learning sendo que estas
mudam de autor para autor e algumas so at contraditrias, visto que alguns autores s consideram como
fazendo parte deste modelo de ensino os mtodos de aprendizagem que faam uso de redes que possibilitem
comunicao de dados como a internet ou intranet (Bowles, 2004). J outros autores consideram como ELearning qualquer forma de aprendizagem feita por meio eletrnico, seja ele computador, tablet PC, telemvel
entre outros (Bowles, 2004).
Pode-se dizer que o E-Learning teve origem nos anos 60 na Universidade de Stanford onde os
professores de Psicologia Patrick Suppes e Richard C. Atkinson testaram a utilizao de computadores para
ensinar matemtica a crianas assim como ensin-las a ler. Desta experincia surgiu mais tarde um programa
educacional que viria a ser conhecido como Stanfords Educational Progam for Gifted Youth. Desde ento, vrias
tm sido as definies aplicadas ao conceito de E-Learning. Nos anos 80 foi definido como Aprendizagem
utilizando qualquer meio eletrnico, especialmente computadores (Bowles, 2004). Em 2003 no Reino Unido o
Departamento para Educao e Capacidades afirmou no documento Towards a Unified E-Learning Stratagy Se
algum est a aprender de uma forma que utilize Tecnologias da Informao e Comunicao (ICTs) est a utilizar
E-Learning (Bowles, 2004). Contudo esta ltima afirmao no foi bem aceite, pois para alguns autores, como
o caso de Marc Rosenborg, para ser considerado E-Learning teria que ser um mtodo de aprendizagem baseado
numa rede, de modo a que fossem possveis atualizaes, armazenamento, distribuio e partilha de contedos
de forma instantnea. Logo para Rosenberg teria que ser um mtodo que chegasse ao utilizador final atravs da
internet ou intranet (Bowles, 2004). Outra definio para E-Learning surge por parte de Ruth Clark no seu artigo
Six principles of Effective e-Leanring: What works and Why, para o autor E-Learning define-se como contedo
e mtodos instrutivos fornecidos por um computador (seja por CD-ROM, pela internet ou intranet) com fim de
oferecer conhecimento e capacidades relacionadas com objetivos individuas ou organizacionais (Clark, 2002).
Todas as definies anteriormente referidas utilizam alguma tecnologia em particular como mtodo a
partir do qual transmitido o conhecimento, o que de certa forma restringe tudo aquilo que realmente poderia
ser visto como E-Learning e ainda exclui tecnologias emergentes que poderiam ser utilizadas para o mesmo fim
(Bowles, 2004). Como tal para o mbito deste projeto utilizar-se- a definio dada por Marcus Bowles que
define E-Elarning como experincia instrutiva que envolve a aquisio ou transferncia de conhecimento
35 | P g i n a
fornecida ou transmitida atravs de meios eletrnicos (Bowles, 2004). Esta definio mais ampla e faz
questo de abrir as portas a todo o tipo de tecnologia que possa ser utilizado para o mesmo fim.
2.1.1.
TIPOS DE E-LEARNING
O E-Learning uma atividade educacional praticada por indivduos ou grupos, trabalhando online ou
offline, de forma sncrona ou assncrona. Esta atividade pode ser realizada por via da internet ou isoladamente
num computador ou qualquer outro dispositivo eletrnico (Naidu, 2006). Levando isto em considerao
possvel diferenciar quatro formas distintas e E-Learning:
2.1.2.
Online individual Neste caso os indivduos aprendem fazendo uso de recursos disponibilizados via
Internet ou Intranet.
Em grupo de forma sncrona Neste caso um grupo de alunos trabalham conjuntamente em tempo
real atravs da internet ou intranet, isto pode ser feito atravs de conferncias (vdeo ou udio) ou
at mesmo chat.
Em grupo de forma assncrona quando um grupo de alunos trabalho atravs de uma rede
(internet ou intranet) mas em que as comunicaes entre os participantes ocorre com atraso de
tempo. Este tipo de E-Learning corresponde por exemplo a trocas de E-mails, fruns, etc.
COMPOSIO DO E-LEARNING
Atravs da Fig. 20 possvel verificar que conceitos engloba o E-Learning assim como onde este ltimo
se insere. Sendo assim possvel atestar que E-Learning no mais de que um mtodo de Aprendizagem
distncia na qual so utilizadas as mais variadas tecnologias. O E-Learning inclui:
36 | P g i n a
Aprendizagem baseada em meios ticos Os recursos educativos podem chegar ao utilizador final
de vrias formas, quando existe uma situao em que o E-Learning feito de forma individual e
offline, as mdias ticas so uma das formas mais utilizadas de fazer chegar estes recursos
educativos aos alunos;
Aprendizagem baseada na web Atravs da World Wide Web (WWW) torna-se possvel a
transferncia de informao sem quaisquer restries temporais ou locais. Deste modo as
tecnologias web tornam-se numa ferramenta muito til e potente para o E-Learning;
Aprendizagem mvel e wireless A tecnologia mvel tem evoludo de forma muito rpida nos
ltimos tempos como tal esta deve ser aproveitada para fins pedaggicos devido ao seu potencial e
forma como esta tecnologia atrai os mais jovens. Atualmente quase todos os equipamentos
mveis esto equipadas com dispositivos Wi-fi ou rede mvel de terceira gerao (3G) permitindo a
transmisso de dados a alta velocidade o que oferece os vasto leque de opes para o E-Learning.
2.1.3.
No E-Learning existem vrias formas de fazer chegar o conhecimento aos formandos, todas elas com o
intuito final de maximizar a capacidade de absoro de conhecimentos (Passos, 2010). Os recursos educativos
podem ento surgir das seguintes formas:
Simulaes Estas tm como fim a recriao de situaes reais assim como situaes cuja
explicao seja mais complexa. Os simuladores devem conter exerccios prticos e fornecer feedback
acerca do desempenho do utilizador.
Jogos Educativos Os jogos possibilitam uma forma mais divertida de adquirir conhecimento, como
tal representam um dos modos mais atrativos para qualquer formando. Este mtodo deve de certa
forma recompensar os seus utilizadores pelos objetivos atingidos visto que cada objetivo
corresponde a uma etapa do processo de aprendizagem.
Testes e Registos A realizao de testes online pode ser utilizada tendo como finalidade a
autoavaliao. Tambm possvel fornecer uma plataforma que avalie os testes enviando no fim o
resultado ao tutor ou ao formando. Este tipo de funcionalidade estar associado normalmente a
testes de mltipla escolha.
A combinao dos mtodos anteriormente descritos para a elaborao de uma ferramenta que tenha
como finalidade o E-Learning s beneficiar os formandos (Passos, 2010). Na ferramenta, a desenvolver neste
projeto, relativamente aos Mapas de Karnaugh pretende-se fornecer um modo tutorial a partir do qual ser
37 | P g i n a
possvel ao utilizador adquirir o conhecimento relativamente aos vrios passos a executar na utilizao dos
mapas de Karnaugh para simplificar funes Algbricas Booleanas. A transao entre cada passo ser interativa
fornecendo uma descrio dos objetivos de cada etapa assim como esses objetivos so alcanados. A aplicao
ainda contar com um modo que permitir ao utilizador resolver os mapas passos a passo assim como resoluo
rpida fornecendo feedback acerca do seu desempenho combinando assim elementos de jogo, teste e
simulao.
2.1.4.
E-LEARNING 2.0
Com o evoluir da Web 2 e aparecimento da Web 2.0 3 surgiu o E-Learning 2.0. Este ltimo no mais do
que uma evoluo do E-Learning usando como recursos um novo conjunto de ferramentas que surgiram com a
Web 2.0 (Bottentui & Coutinho, 2009). Com esta evoluo tornou-se possvel a comunicao entre formandos
de partes opostas do globo, a consulta e partilha de contedos. A introduo destas novas ferramentas no ELearning surge com o objetivo de eliminar qualquer barreira seja ela social, geogrfica, cultural e fazer chegar o
conhecimento a qualquer stio, aumentando assim o prazer pela aprendizagem e aproximando os formando
atravs da criao de comunidades virtuais (Bottentui & Coutinho, 2009).
A evoluo para E-Learning 2.0 surge com a introduo de novos instrumentos da Web 2.0 como o
caso do weblog, com este instrumento tornou-se possvel a atualizao frequentes de contedos, estes
permitem igualmente a troca de ideias, podem ser utilizados de forma individual e coletiva, e ainda tm a
caracterstica de serem muito simples de criar e atualizar (Bottentui & Coutinho, 2009). Um outro instrumento
que passou a ser utilizado so os wikis, estes no so mais do que um stio na web que tem como finalidade o
trabalho coletivo, onde permitido que qualquer pessoa altere ou acrescente contedos possibilitando assim a
realizao de trabalhos colaborativos e uma interao dinmica entre colegas e professor (Bottentui & Coutinho,
2009). Muitos outros instrumentos foram introduzidos no E-Learning como o caso das vrias ferramentas
disponibilizadas pelo Google, como o Google Calender que oferece a possibilidade de coordenar eventos entre
vrias pessoas, o Google Docs que permite a partilha de documentos entre comunidades os quais podem ser
consultados a editados pelos membros consoante um conjunto de permisses definidos pelo tutor ou membro
da comunidade com permisso para tal.
Com a Web 2.0 surgiu uma vasta quantidade de instrumentos dos quais muitos foram aproveitados para
potencializar o E-Learning.
2.1.5.
Interatividade Interao sempre uma mais-valia para qualquer aplicao com fins pedaggicos
pois aumenta a motivao de quem a utiliza (Passos, 2010);
Web Primeiro estado da Word Wide Web, onde as pginas web eram estticas, no havia interatividade e no era aplicada a filosofia
do Open Source, impedindo assim que os utilizadores pudessem criar as suas prprias modificaes e expanses para as aplicaes j
existentes (Strickland, 2011).
3
Web 2.0 Evoluo da Web com a introduo de aplicaes que permitem a partilha de informao, colaborao, comunidades
virtuais, etc.. Redes socias, blogs, wikis entre outros so bons exemplos de Web 2.0 (Musser & O'Reilly, 2006).
38 | P g i n a
Distribuio mundial sem custos Atravs das mltiplas tecnologias e ferramentas disponveis de
forma gratuita possvel partilhar contedos de sua autoria na Internet sem qualquer custo
(Namahn, 2011);
Eficcia - Uma formao personalizada tem normalmente uma maior probabilidade de reteno dos
contedos, assim como a possibilidade de cada formando poder manter o seu prprio ritmo de
aprendizagem o que contribui para uma melhor perceo (Cao & Dias, 2003).
Apesar da sua grande utilidade e dos benefcios j enumerados, algumas desvantagens tambm esto
presentes no E-Learning, sendo estas:
Dependncia da largura de banda Estando o E-Learning cada vez mais associado internet, este
pode depender muito dos limites da largura de banda principalmente quando os recursos esto na
forma de vdeo ou udio (Namahn, 2011).
Perca do contacto humano Comea a ser uma preocupao o facto de cada vez mais, existir uma
grande focalizao na utilizao de tecnologias, chegando estas, por vezes, a substituir o contacto
humano (Namahn, 2011).
Nem todas as matrias so facilmente apresentadas pelo E-Learning Algumas matrias requerem
um toque humano para serem corretamente absorvidas, como por exemplo assuntos emocionais
(Namahn, 2011).
Sobrevalorizao dos aspetos tecnolgicos Por vezes os fatores tcnicos podem-se sobrepor ao
elemento pedaggico, ficando este ltimo para 2 plano.
2.2. M-LEARNING
Os terminais mveis esto a demonstrar ser uma componente vivel para fins Pedaggicos visto que
oferecem a possibilidade de apoiar a aprendizagem convencional assim como potencializar o E-Learning (Traxler,
2005).
O M-Learning (Mobile Learning) pode ser definido como fonte educativa, onde a nica tecnologia
ou tecnologias dominantes so dispositivos portteis (Traxler, 2005). A partir desta definio conclui-se que no
M-Learning incluem-se dispositivos como telemveis, smartphones, PDAs, tablets PCs e at computadores
portteis (Traxler, 2005).
39 | P g i n a
2.2.1.
Pequena dimenso dos dispositivos Esta caracterstica vem reforar a portabilidade do MLearning, pois a sua pequena dimenso faz com que sejam mais fceis de transportar para qualquer
lado;
Poder de computao A maioria dos terminais mveis recentemente lanados tem um grande
poder de computao diminuindo assim as limitaes do M-Learning;
Comunicaes sem fios Atualmente estes dispositivos dispem de uma variedade de ligaes sem
fios (Wi-Fi, Bluetooth, GPS, GSM, GPS, 3G), fazendo com que seja possvel estar online maioria do
tempo;
Sincronizao de dados com computador Torna a atualizao de contedos muito mais acessvel.
Stylus pen como forma de input Este mtodo de input oferece a possibilidade de escrita mo,
desenho, tudo o que tradicionalmente era feito numa folha de papel.
Apesar do novo conjunto de possibilidades que o M-Learning proporcionou, existem tambm alguns
problemas e desafios na sua utilizao:
Dimenso do ecr A maioria dos dispositivos mveis tm um ecr de pequena dimenso o que
obriga a um cuidado redobrado quando concebendo recursos a utilizar nesta modalidade de ensino,
pois existe um limite de contedo a mostrar em cada ecr e deve ser levado em considerao os
mais diversos tamanhos e diferentes resolues dos ecrs dos dispositivos mveis.
Tempo de vida das baterias O facto de utilizar dispositivos mveis apresenta a vantagem de ser
utilizado em qualquer stio, mas contudo este facto vem associado ao facto de nem todos os stios
terem uma fonte de energia disponvel, logo os dispositivos esto sujeitos durao da bateria que
em muitos casos se revela curta.
40 | P g i n a
2.3.1.
Nesta seco sero enumeradas as aplicaes dedicas aos mapas de Karnaugh j existentes
sendo feita uma referncia aos aspetos nos quais estas se distinguem.
2.3.1.1.
2.3.1.2.
A abordagem feita por Michael Keppler um pouco mais completa que a anteriormente referido, pois
esta conta com vrios mtodos de introduzir o valor dos termos dos mapas de Karnaugh. Esta ferramenta
apresenta a representao grfica do mapa assinalando de forma destinta cada implicante. Outra funcionalidade
assinalvel reside na possibilidade de obter mapas de 1 at 6 variveis, ainda que para mapas de 6 variveis com
um elevado nmero de Implicantes
a sua identificao torna-se
complicado e a aplicao lenta.
Como possvel verificar na Fig. 22,
este software fornece ainda o
esquema
do
circuito
correspondente soluo. De
referir que esta aplicao est
disponvel em forma de applet,
fazendo com que esta s possa ser
utilizada online (Keppler, 2010).
Fig. 22 - Karnaugh Applet (Keppler, 2010).
41 | P g i n a
2.3.1.3.
2.3.1.4.
2.3.1.5.
42 | P g i n a
2.3.1.6.
EASYKARNAUGH (EK)
2.3.1.7.
KARMA
A ferramenta Karma desenvolvida por Andr Reis e Renato Ribas, uma aplicao potente que de entre
as suas funcionalidades dispe de uma componente dedicada aos mapas de Karnaugh. Esta componente
permite ao utilizador obter a soluo de um mapa de Karnaugh incluindo dados bsicos como a frmula
correspondente soluo mnima, o mapa devidamente preenchido, mas fornece tambm outros dados mais
detalhados como os passos do mtodo de Quine McCluskey e a respetiva tabela dos implicantes Primos. Ainda
dentro da componente dedicada aos Mapas de Karnaugh a aplicao fornece ao utilizador um modo didtico
onde possvel por exemplo verificar a
adjacncia em todo o mapa, formar
Implicantes, dado um conjunto de
mapas tentar identificar que Implicantes
so primos, etc. (Reis & Ribas, 2011).
Aquando da escrita desta dissertao a
aplicao representada na Fig. 27
encontrava-se na verso 3.61.
43 | P g i n a
2.3.1.8.
BOOLE-DEUSTO
2.3.1.9.
44 | P g i n a
45 | P g i n a
46 | P g i n a
PC
Caractersticas
4x4 KMM
Assinala os Implicantes/Implicados
Introduo pelo Mapa
X
Introduo por Tabela de Verdade
X
Introduo por expresso algbrica
Suporta termos de valor indiferente
X
Expresso simplificada
X
Nmero mnimo de variveis
4
Nmero mximo de variveis
4
Resoluo SOP
X
Resoluo POS
Opes de preenchimento rpido do mapa
Apagar todo o mapa
Alterar ordem das variveis de entrada
Personalizar nomes das variveis
Nmero de ordem dos Minitermos
Tabela dos implicantes
(Quine McCluskey)
Guardar e abrir Mapas
Gerar relatrio do Mapa
Gerar cdigo VHDL
Gerar cdigo Verilog
Exportar mapa em HTML
Gerar esquema eltrico
Utilizador pode resolver mapas de Karnaugh
Suporte didtico
Contm Exerccios
Suporta mais que um idioma
Tabela 13 - Caractersticas das Aplicaes de Mapas de Karnaugh.
Telemvel
KA
KM
KMM
KM2
X
X
X
X
X
1
6
X
X
X
-
X
X
X
X
X
4
4
X
-
X
X
X
X
1
8
X
X
X
X
X
X
4
4
X
X
X
X
X
X
KM2
(verso
Completa)
X
X
X
X
X
X
1
8
X
X
X
X
X
X
X
X
X
X
X
X
EK
Karma
BooleDeusto
KMO
PKM
KMA
X
X
X
X
3
4
X
X
X
-
X
X
X
X
X
X
2
8
X
X
X
X
X
X
X
X
X
X
X
1
X
X
X
X
X
-
X
X
X
X
X
1
4
X
-
X
X
X
X
4
4
X
X
-
X
X
X
X
X
1
8
X
X
-
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
De modo tornar a ferramenta mais completa pretende-se ainda disponibilizar uma componente didtica
a partir da qual um utilizador possa adquirir conhecimentos acerca dos passos a executar na resoluo dum
mapa de Karnaugh, assim como a possibilidade executar esses mesmos passos. Pretende-se ainda que a
aplicao seja capaz de disponibilizar mais do que uma soluo para um mapa de Karnaugh e verificar todas as
possveis, visto que muitas vezes um mapa de Karnaugh pode ter mais do que uma soluo mnima.
2.3.2.
At ao momento da escrita desta dissertao, no foi identificado qualquer software que abordasse esta
ferramenta de Sistemas Digitais.
Dada a inexistncia de aplicaes nesta rea, fica igualmente a faltar uma referncia a seguir aquando
do desenvolvimento de uma nova aplicao. Ainda assim o objetivo passa por criar uma aplicao Informtica
interessante que possa ser utilizada como ferramenta complementar na tarefa de lecionar funcionamento da
Tcnica das Parties.
2.4. CONCLUSO
As metodologias de ensino apresentadas neste captulo aparecem num contexto de tornar a
aprendizagem mais acessvel, motivante e divertida apresentando um conjunto de benefcios que sobrepem-se
s suas limitaes. Com a evoluo e desenvolvimento destas reas as suas limitaes acabaro por ser
contornadas, contribuindo para que o E-Learning e M-Learning sejam cada vez mais um complemento benfico
a conjugar com os mtodos de ensino tradicionais.
No que toca ao trabalho j desenvolvido na rea abordada nesta dissertao possvel verificar que,
relativamente ferramenta Mapas de Karnaugh, j existem diversas aplicaes, mas que poucas tm como
objetivo ensinar ao utilizador o seu funcionamento. Esta situao igualmente verificada quando analisadas as
aplicaes disponveis para dispositivos mveis, visto que estas tm por objetivo somente apresentar a soluo
de um mapa de Karnaugh sem indicar como se chega a tal soluo.
Finalmente na rea da Tcnica das Parties no foi identificado qualquer software desenvolvido at ao
momento, no existindo assim qualquer ponto de referncia. Como tal o objetivo passa por criar uma aplicao
capaz de satisfazer as necessidades existentes nesta rea.
47 | P g i n a
48 | P g i n a
3. DESENVOLVIMENTO DO SOFTWARE
3.1. TECNOLOGIAS UTILIZADAS
Tendo em considerao que o objetivo desta tese consiste no desenvolvimento de duas aplicaes
capazes de auxiliar o ensino de ferramentas de Sistema Digitais e posteriormente a sua publicao na internet,
os critrios para a escolha das tecnologias a utilizar incidiram nos seguintes pontos:
As tecnologias utilizadas devem fazer parte do quotidiano da comunidade qual se destinam, sendo
que a escolha deve incidir sobre uma tecnologia que esteja disponvel maior percentagem possvel
de indivduos desta comunidade;
Constatando que trata de uma comunidade acadmica, as tecnologias utilizadas devem assentar no
princpio do software livre. Desta forma as aplicaes desenvolvidas no devem exigir a prinstalao de qualquer software comercial.
Por forma a respeitar os critrios acima referidos as escolhas das tecnologias a utilizar foram as
seguintes:
Aplicao PC Para este formato a aplicao foi desenvolvida em Java. Atualmente esta tecnologia
encontra-se na verso 6. A escolha recaiu sobre o Java pois oferece versatilidade, eficincia e portabilidade. Para
que a aplicao desenvolvida possa funcionar num computador basta que este tenha instalado uma mquina
virtual Java, mais conhecida como Java Runtime Environment (JRE). De referir ainda que a utilizao desta
tecnologia gratuita (ORACLE, 2012).
Aplicao Telemvel Para este formato a escolha da tecnologia a utilizar recaiu sobre o Java Micro
Edition (Java ME). Atualmente esta tecnologia encontra-se na verso 3.0.5 (ORACLE, 2012). O principal fator
para a escolha desta tecnologia reside no facto de que atualmente, a nvel mundial, 80% dos telemveis
suportam Java ME (Enough Software, 2011). Ainda assim, por forma a garantir uma maior disponibilidade da
aplicao, esta foi adaptada a Android, devido ao elevado crescimento que esta tecnologia tem vindo a
demonstrar nos ltimos tempos. Atualmente o Android encontra-se na verso 4.0 (Google, 2012).
Pgina Web Pata a criao de uma pgina web foi escolhida a tecnologia Joomla. O Joomla um
Sistema de Gesto de Contedos (CMS Content Management System) que permite a criao e gesto de stios
web dinmicos. Foi escolhido um CMS para esta tarefa, visto que este permite a criao de uma pgina web de
forma rpida e eficiente, com o extra de permitir criar um web site apelativo sem grandes esforos dado o vasto
leque de extenses, distribudas de forma gratuita, que o Joomla disponibiliza para criar funcionalidades
especficas e personalizar os contedos (JoomlaPT, 2012).
3.1.1.
Para o desenvolvimento das aplicaes o IDE (Integrated Development Environment) escolhido foi o
Eclipse. Este IDE encontra-se atualmente na verso Indigo (3.7.1) (Eclipse Foundation, 2012). Para esta escolha
contriburam os factos de este ser altamente eficiente, ser compatvel com todas as tecnologias referidas
anteriormente e ainda ser de utilizao gratuita, uma vez que tambm obedece ao princpio de software livre.
Desenvolvimento para PC No desenvolvimento com destino ao PC, para alm das tecnologias
previamente descritas, foram ainda utilizadas as seguintes APIs (Aplication Programming Interface):
49 | P g i n a
iText rene um conjunto de mtodos que possibilitam a criao de ficheiros PDF (iText Software
Corp, 2011);
JDOM rene um conjunto de mtodos para a escrita e leitura de ficheiros XML (Hunter &
McLaughlin, 2012).
Desenvolvimento para telemvel No desenvolvimento para esta plataforma tambm foram utilizadas
mais algumas APIs:
LWUIT Lightweight User Interface Toolkit. Esta API no mais do que uma framework que tem
como objetivo facilitar a criao de uma Interface, garantindo ainda que o aspeto da aplicao ser
independente do telemvel onde esta seja executada, ou seja, garante um aspeto idntico em
qualquer telemvel (Knudsen, 2008).
Nota: Os detalhes de utilizao das tecnologias referidas sero descritos nas seces seguintes.
3.2.1.
REQUISITOS - KARNUMA
Seguem-se os requisitos da aplicao KarnUMa.
3.2.1.1.
RFG 1. O sistema deve permitir a escolha de entre dois idiomas, sendo estes o Portugus e o Ingls.
RFG 2. O sistema deve permitir a escolha do nmero de variveis do mapa de Karnaugh.
RFG 3. O sistema deve permitir a escolha do mtodo de resoluo do mapa de Karnaugh, podendo ser Soma de
Produtos ou Produto de Somas.
RFG 4. O sistema deve fornecer dois mtodos de preenchimento do mapa de Karnaugh, sendo estes pelo
prprio mapa ou alternativamente por uma tabela de Verdade.
RFG 5. O sistema deve permitir a escolha da ordem das variveis de entrada para o mapa de Karnaugh;
50 | P g i n a
RFG 6. O sistema deve permitir o preenchimento do mapa de Karnaugh por parte do utilizador ou
automaticamente por parte do sistema de forma aleatria.
RFG 7. O sistema deve fornecer o mapa de Karnaugh e a tabela de verdade devidamente preenchidas por forma
a verificar a sua correspondncia, isto aps o preenchimento do mapa de Karnaugh que dever ser feito de
acordo com RFG 4 e RFG 6.
RFG 8. O sistema deve permitir ao utilizador resolver o mapa de Karnaugh.
RFG 9. O sistema deve permitir obter a soluo do mapa de Karnaugh.
RFG 10. O sistema deve, aquando da resoluo do mapa de Karnaugh por parte do utilizador (RFG 8), fornecer
feedback do estado da resoluo.
RFG 11. O sistema deve, aquando da resoluo do mapa de Karnaugh por parte do utilizador (RFG 8), validar
cada passo da resoluo.
RFG 12. O sistema deve, aquando da resoluo do mapa de Karnaugh por parte do utilizador (RFG 8), identificar
as possveis falhas do utilizador neste processo, indicando as possveis causas desta falha.
RFG 13. O sistema deve, aquando da apresentao da soluo do mapa de Karnaugh (RFG 9), disponibilizar a
frmula correspondente soluo apresentada.
RFG 14. O sistema deve, aquando da apresentao da soluo do mapa de Karnaugh (RFG 9), permitir a
identificao de cada Implicante/Implicado no mapa de Karnaugh simultaneamente com os restantes
Implicantes/Implicados ou exclusivamente, sendo que neste caso apenas o grupo pretendido ser
apresentado no mapa.
RFG 15. O sistema deve, aquando da apresentao da soluo do mapa de Karnaugh (RFG9), fornecer sempre
que se verifique, at 2 solues para o mapa.
RFG 16. O sistema deve permitir iniciar um novo mapa de Karnaugh sempre que o utilizador assim o entenda.
RFG 17. O sistema deve permitir alterar a orientao das variveis de entrada do Mapa de Karnaugh sempre que
o utilizador assim o entenda.
RFG 18. O sistema deve permitir a alterao do mtodo de resoluo aquando da execuo do RFG8.
RFG 19. O sistema deve permitir a alterao do idioma da aplicao a qualquer momento da sua execuo.
RFG 20. O sistema deve permitir, a qualquer momento da sua execuo, voltar ao estado anterior ou ao estado
seguinte.
RFG 21. O sistema deve permitir o trmino da aplicao a qualquer momento, desde que o utilizador assim o
entenda.
3.2.1.2.
RFPC 1. O sistema deve permitir escolher de entre 3 at 6 variveis para os mapas de Karnaugh.
RFPC 2. O sistema deve permitir a observao da resoluo do mapa de Karnaugh ao detalhe, indicando os
vrios passos necessrios para se obter tal soluo.
RFPC 3. O sistema deve fornecer a soluo do mapa de Karnaugh expressa, ou seja, sem passos intermdios.
RFPC 4. O sistema deve permitir ao utilizador resolver o mapa de Karnaugh detalhadamente, ou seja num
processo que engloba vrios passos.
RFPC 5. O sistema deve permitir ao utilizador resolver o mapa de Karnaugh diretamente, ou seja numa nica
etapa na qual dever atingir a soluo final.
RFPC 6. O sistema deve permitir, aquando apresentao da soluo do mapa de Karnaugh (RFG 8), a exportao
de cdigo fonte nas Linguagens de Descrio de Hardware VHDL e Verilog;
RFPC 7. O sistema deve permitir, aquando apresentao da soluo do mapa de Karnaugh (RFG) a exportao
de um relatrio correspondente ao mapa de Karnaugh com todos os seus dados relevantes.
51 | P g i n a
3.2.1.3.
RFT 1. O sistema deve permitir escolher de entre 3 e 4 variveis para os mapas de Karnaugh.
3.2.1.4.
3.2.1.5.
3.2.1.6.
RNFT 1. O sistema deve garantir uma correta apresentao independente das dimenses do ecr, desde que
estas satisfaam as dimenses mnimas exigidas.
RNFT 2. O sistema deve garantir portabilidade entre os dispositivos, desde que estes contenham os requisitos
exigidos.
Nota: Garantir a portabilidade entre diferentes Telemveis como referido nos requisitos No Funcionais RNFT 1
e RNFT 2 implica que sejam feitos alguns sacrifcios no que toca ao desempenho (RNFG 5), visto que a
portabilidade e o desempenho esto sempre relacionados, sendo que elevado desempenho normalmente
implica uma baixa portabilidade e vice-versa.
3.2.2.
REQUISITOS PARTEK
Seguem-se os requisitos da aplicao Partek
3.2.2.1.
RF 1.
RF 2.
RF 3.
RF 4.
RF 5.
RF 6.
REQUISITOS FUNCIONAIS
O sistema deve permitir a escolha de entre dois idiomas, sendo estes o Portugus e o Ingls.
O sistema deve permitir a escolha do nmero de estados, entradas e sadas de cada Tabela de Estados;
O sistema deve permitir trabalhar com dois tipos de mquinas de estados, sendo estas as mquinas de
Moore e mquinas de Mealy;
O sistema deve permitir o preenchimento das Tabelas de Estados por parte do utilizador ou
automaticamente por parte do sistema de forma aleatria.
O sistema deve permitir obter a soluo da aplicao da Tcnica das Parties.
O sistema deve, aquando da apresentao da soluo (RF 5), identificar corretamente cada componente
da soluo apresentada.
52 | P g i n a
RF 7.
RF 8.
RF 9.
RF 10.
RF 11.
RF 12.
RF 13.
O sistema deve, aquando da apresentao da soluo (RF 5), permitir a visualizao detalhada dessa
mesma soluo.
O sistema deve, aquando da apresentao da soluo (RF 5), permitir a visualizao dos diagramas de
estados correspondentes s Tabelas de Estados apresentadas.
O sistema deve permitir iniciar uma nova Tabela de Estados sempre que o utilizador assim o entenda.
O sistema deve permitir a alterao do idioma da aplicao a qualquer momento da sua execuo.
O sistema deve permitir, a qualquer momento da sua execuo, voltar ao estado anterior ou ao estado
seguinte.
O sistema deve permitir o trmino da aplicao a qualquer momento, desde que o utilizador assim o
entenda.
O sistema deve permitir a memorizao de Tabelas de Estados.
3.2.2.2.
REQUISITOS NO FUNCIONAIS
53 | P g i n a
3.3.1.
KARNUMA VERSO PC
Formula Responsvel por obter a frmula booleana e simplific-la atravs do mtodo de Quine
McCLuskey. Para alm do contedo inicial que permitia aplicao do mtodo de Quine McCluskey
foram acrescentados mtodos por forma a colmatar mais algumas necessidades como a
interpretao do contedo da frmula inicial de forma a preencher o mapa de Karnaugh,
fornecimento de at duas solues quando possvel, obteno os grupos de termos correspondentes
aos implicados ou implicantes, a verificao da soluo obtida pelo utilizador;
Term Esta classe corresponde a cada termo de uma frmula booleana. Inicialmente era
simplesmente uma classe auxiliar, visto que cada frmula, seja esta inicial ou mesmo a soluo
composta por uma lista de termos. Posteriormente foram acrescentados mtodos que permitem
verificar se um termo em particular est presente num determinada frmula, verificar que outros
termos estariam contidos num termo simplificado, entre outros sempre com a finalidade de cumprir
com os objetivos finais da aplicao.
54 | P g i n a
components Este pacote composto por classes que correspondem a componentes grficas da aplicao
como por exemplo o desenho grfico do mapa de Karnaugh e da tabela de verdade. Fazem parte deste pacote
as seguintes classes:
KContainer Esta classe est na base do mapa de Karnaugh e da tabela de verdade visto que
superclasse de ambas, contendo vrios atributos e mtodos partilhados pelas classes dos elementos
referidos, como por exemplo a leitura dos seus contedo para se obter a expresso inicial a
simplificar;
TableContainer Representao grfica da tabela de verdade, como acontece com MapPanel, esta
classe tambm uma especializao de KContainer;
TermToggleButton Corresponde tambm a cada clula do mapa de Karnaugh, mas neste caso para
as situaes em que o mapa interativo, como o preenchimento ou resoluo, ambos por parte do
utilizador.
userInterface Este o pacote responsvel pelo desenho da interface grfica, e por lidar com a interao com o
utilizador. Este pacote composto pelas seguintes classes:
UI Classe principal do programa, esta a classe que determina o fluxo do programa consoante as
escolhas do utilizador e apresenta os contedos respetivos de cada elemento da aplicao. esta
classe tambm que d resposta a todas as interaes do utilizador, com as excees daquelas que
so especficas do mapa de Karnaugh e da tabela de verdade como o seu preenchimento ou seleo
de clulas.
UndoRedo Tem por objetivo o armazenamento das interaes do utilizador de forma a permitir a
execuo das funcionalidades de voltar atrs e repetir;
UserDataXML Classe responsvel pela escrita e leitura de um ficheiro XML com informaes do
utilizador que devem ser memorizadas para cada execuo da aplicao. Esta classe faz uso da API
JDOM para escrita e interpretao do ficheiro XML;
languagePack Pacote onde se encontram os idiomas disponveis para a aplicao. Segue-se o seu contedo:
Languages Superclasse para qualquer idioma que possa ser introduzido na aplicao. Esta contm
todas declaraes dos mtodos que contm o texto, estando a cargo de cada classe de idioma
implement-los com o contedo no respetivo idioma;
55 | P g i n a
56 | P g i n a
Report Este pacote contm um par de classes que tm como finalidade a escrita de um relatrio em formato
PDF com todo o contedo relevante de cada mapa de Karnaugh. Ambas as classes deste pacote fazem uso da
API iText. Este pacote composto por:
ReportWriter Obtm o contedo pretendido e cria o relatrio em PDF;
ReportEvents Responsvel por lidar com eventos repetidos ao longo da escrita do relatrio em
PDF, como a numerao das pginas e a escrita dos cabealhos.
ldh Neste pacote encontram-se as classes responsveis pela escrita de cdigo fonte em VHDL e Verilog.
VerilogGenerator Constri um ficheiro com cdigo fonte Verilog da soluo do mapa de Karnaugh
que est a ser apresentada na aplicao;
VHDLGenerator Constri um ficheiro com cdigo fonte VHDL da soluo do mapa de Karnaugh
que est a ser apresentada na aplicao.
fileManagement Este o pacote responsvel por exportar os ficheiros PDF do relatrio e os ficheiros de
cdigo fonte VHDL e Verilog. Parte do contedo das classes neste pacote foi gerada tendo por base cdigo fonte
obtido nos tutoriais da Oracle (Oracle, 2012). A constituio deste pacote formado por:
FileSaver Classe que tem como o objetivo a aparecimento da janela que permite gravar ficheiros;
PDFFilter Cria um filtro para lidar com os ficheiros do tipo PDF cuja extenso .pdf;
VerilogFilter Cria um filtro para lidar com os ficheiros Verilog cuja extenso .v;
VHDLFilter Cria um filtro para lidar com ficheiros VHDL cuja extenso .vhdl;
Utils Classe auxiliar exportao de ficheiros, tem por objetivo obter a extenso dos ficheiros.
auxiliary Pacote auxiliar que contm um conjunto de mtodos gerais a serem utilizados ao longo de todo o
programa pelas vrios pacotes.
GeneralMethos Classe onde esto implementados os vrios mtodos gerais.
3.3.2.
Tal como no desenvolvimento da verso PC, o desenvolvimento do software na verso Midlet obedeceu
ao paradigma da programao Orientada a Objetos.
Ainda que o desenvolvimento da Midlet tenha sido realizado com as APIs do Java ME, este mesmo
desenvolvimento recorreu utilizao da framework Lwuit. Esta framework disponvel para auxiliar a criao de
aplicaes Java ME permite a utilizao dos mais variados componentes grficos que dela fazem parte, muitos
dos quais, no esto presentes por defeito nas APIs do Java ME. Todos os componentes desta framework podem
ainda ser personalizados atravs de uma ferramenta disponvel para tal efeito, denominada Resource Editor
(Knudsen, 2008).
Como caracterstica especfica desta verso destaca-se a implementao de vrias classes recorrendo ao
padro de Desenho de software Singleton, com o objetivo de diminuir a quantidade de memria utilizada. Esta
caracterstica vem assegurar um correto funcionamento mesmo em telemveis que dedicam pouca memria s
aplicaes do tipo Midlet. A utilizao do padro de desenho Singleton, ao conceber uma classe, estabelece que
apenas uma instncia dessa classe ser criada ao longo da execuo do programa, garantindo assim uma gesto
mais eficiente da memria.
57 | P g i n a
Outro cuidado especfico da implementao desta verso residiu em utilizar dimenses relativas para
todos os componentes grficos criados. Esta medida assegura que a aplicao ter um aspeto semelhante
independente das dimenses dos ecrs dos dispositivos mveis. Ainda relacionado com as dimenses do ecr,
importante referir que a aplicao capaz de lidar com ecrs de configurao vertical e horizontal, visto que a
disposio dos elementos grficos varia consoante a configurao detetada.
Na Fig. 33 est representado o Diagrama de Classes para a aplicao KarnUMa na verso Midlet.
Olhando para o diagrama possvel identificar um conjunto de classes idnticas ao diagrama da verso PC, isto
deve-se ao aproveitamento que foi feito ao nvel de cdigo fonte, com a exceo da classe principal UI que
apesar de ter o mesmo objetivo, a sua implementao foi realizada de raiz visto se tratarem de plataformas
diferentes. Olhando para o diagrama da Fig. 33 podem-se identificar todas as relaes de Associao e
Generalizao existentes nesta verso da implementao como por exemplo a Associao UndoRedo, na qual
possvel verificar que a classe UI pode conter at uma instncia do tipo de objeto UndoRedo. Uma outra
relao a destacar a de Generalizao das classes Portuguese e English para Languages, que indica que
Languages ser superclasse de English e Portuguese, e estas suas subclasses. Pode-se ento dizer que English e
Portuguese derivam de Languages, sendo que uma instncia de English ou Portuguese ser tambm instncia de
Languages. Ainda ao analisar o diagrama da Fig. 33 podem-se identificar as vrias classes em que foi seguido o
padro de Desenho Singleton. Olhando para as classes Languages, Portuguese e English pode-se identificar a
presena deste padro ao verificar que cada uma destas classes contm uma associao com a prpria classe de
multiplicidade 01 denominada Instance, o que indica que apenas uma instncia destes objetos ser criada
durante a execuo da aplicao. Ainda relativamente ao padro de desenho Singleton possvel identificar no
diagrama da Fig. 33 uma derivao deste padro nas classes TableContainer e MapContainer, visto que estas
tambm limitam a quantidade de instncias de cada uma. Isto pode ser observado por exemplo na classe
TableContainer atravs das associaes emptyTableInstance e filledTableInstance, ambas de multiplicidade 01.
O cdigo fonte da aplicao Pocket KarnUMa (verso Midlet) encontra-se estruturado de forma
semelhante ao da aplicao KarnUMa na verso PC. Contudo existem algumas diferenas que sero
seguidamente apresentadas. A descrio da estrutura do cdigo fonte desta verso far referncia somente s
situaes em a estrutura diferente verso PC. Como tal deve-se assumir que os pacotes no referidos tm o
mesmo contedo da verso descrita anteriormente.
componentes Pacote de contedo semelhante ao da verso anteriormente referida. Contm as mesmas
classes da verso congnere, tendo sido adicionada a classe:
GroupPainter Classe destinada definir a pintura das clulas dos mapas de Karnaugh para
assinalar os Implicantes/Implicados. A criao desta classe deve-se s diferenas de implementao
entre ambas as verses at agora mencionadas, enquanto na verso PC a pintura era definida nos
componentes, na verso Midlet foi criada uma classe para este fim, sendo os seus mtodos
posteriormente utilizados nos componentes onde suposto efetuar esta pintura.
userInterface - o contedo deste pacote semelhante ao que acontece na verso PC, contudo a sua
implementao distinta visto que tratam-se de duas plataformas diferentes. Relativamente ao pacote da
verso PC apenas partilha as classes UI e UndoRedo, sendo que ambas partilham as mesmas funcionalidades da
verso PC. Seguem-se as classes especficas desta verso:
UIclone Classe que contm uma cpia dos objetos relevantes para as funcionalidade de Voltar
atrs e Repetir. Tornou-se necessria criao desta classe uma vez que nesta verso do Java no
58 | P g i n a
est disponvel o mtodo de colonizar objetos, sendo ento necessrio criar uma classe que guarda
os objetos necessrios s funcionalidades j referidas;
UserData Igualmente ao que acontecia com a classe UserDataXML da verso PC, esta classe tem
por objetivo guardar os dados de utilizador relevantes. Mas neste caso no utilizado um ficheiro
XML para este fim, mas sim, a memria do telemvel destinada s aplicaes. Recorrendo a
mtodos especficos do Java ME so guardados e carregados os dados de utilizador na memria do
telemvel.
com.sun.lwuit Este um pacote especfico da framework Lwuit utilizada nesta verso da aplicao. Foram
introduzidas novas classes neste pacote com o objetivo de criar especializaes de classes j nelas definidas.
Estas especializaes consistem em objetos da framework utilizada, aos quais pretendia-se adicionar novas
funcionalidades. As classes implementadas neste pacote foram as seguintes:
MyDialog e MyForm Especializao dos objetos Dialog e Form da framework Lwuit. Estas classes
consistem numa implementao com caractersticas adicionais s classes originais. A caracterstica
mais relevante est na implementao destas classes com o padro de desenho Singleton.
Auxiliary Como acontece na verso congnere, este pacote est munido de mtodos auxiliares que so
utilizados pelos vrios pacotes ao longo da execuo do programa. Foram ainda adicionados alguns mtodos
que fazem parte das APIs do Java, mas que no faziam parte das APIs do Java ME. Este pacote constitudo
pelas classes:
InputCheck Esta classe tem por objetivo identificar a origem da interao por parte do utilizador.
Basicamente faz a distino entre dois tipos de objetos responsveis por interagir com o utilizador e
fornece esta informao classe responsvel por lidar com a interao.
De referir ainda que esta verso partilha dos pacotes QuineMcCluskey e langaugePack com a verso PC.
Estes pacotes so semelhantes em parte do contedo, mas contm algumas diferenas relacionadas com o facto
de serem implementaes de diferentes plataformas e tambm relacionadas com algumas funcionalidades
exclusivas da verso PC. Os restantes pacotes da verso PC no mencionados so exclusivos dessa verso visto
que esto relacionados com funcionalidades exclusivas.
59 | P g i n a
60 | P g i n a
3.3.3.
Esta verso do software em tudo semelhante verso Midlet, apenas foi necessria a utilizao da
framework LWUITPortAndroid, que tornou possvel o aproveitamento do cdigo fonte desenvolvido para a
Midlet, para a criao de um Android Package. Sendo assim a framework LWUITPortAndroid tem como tarefa a
interpretao das bibliotecas provenientes da framework Lwuit, de modo a que estas sejam corretamente
executadas na Aplicao Android (Chirico, 2011). O restante cdigo fonte no requer qualquer tipo de
interpretao, uma vez que o cdigo fonte para a criao de um Android Package tambm baseado em Java.
Como foi referido o cdigo fonte desenvolvido para esta verso da aplicao KarnUMa semelhante
verso Midlet, contendo somente pequenas diferenas relacionados com a apresentao, como tamanhos de
tipo de letra. Comparando aplicao na verso Midlet, a estrutura desta verso apenas se distingue da
estrutura da Midlet pela introduo de uma novo pacote com a classe responsvel por utilizar framework
LWUITPortAndroid. O novo pacote introduzido nesta verso foi:
com.activity Responsvel por utilizar a framework LWUITPortAndroid. Este pacote constitudo pela classe:
3.3.4.
PARTEC
Esta aplicao foi desenvolvida exclusivamente para PC. Tal como aconteceu com todas as aplicaes
referidas at ao momento, o desenvolvimento deste software tambm obedeceu ao paradigma da programao
Orientada aos Objetos.
A Fig. 34 representa o Diagrama de Classes desta aplicao. Pode-se verificar pelo diagrama que o
desenvolvimento desta aplicao seguiu a mesma estrutura das aplicaes at aqui apresentadas, o que visvel
pela presena de classes como UI, UIclone, UndoRedo, Languages e suas subclasses.
Analisando o Diagrama pode-se observar a relao de Generalizao existente das classes TableToFill,
IteractionTable e FinalTable para TableContainer. Isto acontece porque ainda que cada uma das subclasses
represente um tipo de tabela distinto, todas elas obedecem ao mesmo padro para o desenhar de uma Tabela.
Segue-se a descrio da estrutura do cdigo fonte da aplicao ParTec:
partitionsTechniqueAlgorithm Este pacote contm um total de 3 classes que tm por objetivo a execuo de
um algoritmo que aplica a Tcnica das Parties.
Iterator Considerando os vrios passos da Tcnica das Parties como Iteraes, esta classe
executa e guarda os dados das iteraes necessrias para completar o processo de eliminao de
estados redundantes pela Tcnica das parties.
Partition Corresponde a cada partio criada com a execuo da Tcnica das Parties. Faz parte
deste objeto uma lista dos estados pertencentes a esta partio assim como um conjunto de
mtodos para lidar com os mesmos, como por exemplo um mtodo para identificar qual o estado ou
estados redundantes dentro desta partio.
61 | P g i n a
State Este objeto corresponde a um estado da Tcnica das Parties, contm elementos como os
estados seguintes, valores de sada, partio a qual o estado pertence entre outos.
components Este pacote composto por classes que correspondem a componentes grficas da aplicao
como por exemplo o desenho grfico das tabelas de estados. Fazem parte deste pacote as seguintes classes:
Arrow Desenha uma seta que utilizada para assinalar linhas nas tabelas.
MooreBeginTable Corresponde a uma situao idntica a MealyBeginTable, mas neste caso para
uma tabela de estados de uma mquina de Moore.
StateCell Corresponde a uma clula de estado seguinte nas tabelas de estados. Nestas clulas o
utilizador pode escolher o estado bem como o valor de sada.
stateDiagram Este o pacote responsvel pelo desenho dos diagramas de Estados. Fazem parte deste pacote
as seguintes classes:
Diagram Corresponde ao diagrama no seu todo, fazendo uso das classes Arrows e StateCircle
desenha todo o diagrama de estados.
Resta referir que os pacotes auxiliar, languagePack e userInterface so semelhantes aos existentes nas
aplicaes referidas anteriormente, de modo que desempenham os mesmos papis no desenvolvimento da
aplicao.
62 | P g i n a
63 | P g i n a
Seguidamente nas Fig. 35, Fig. 36 e Fig. 37 esto representados os diagramas de Casos de Utilizao para
as aplicaes desenvolvidas.
64 | P g i n a
Definindo
caractersticas do mapa de Karnaugh
Preenchendo mapa
de Karnaugh
extends
Inserindo contedo
de mapas de Karnaugh
extends
Preenchendo tabela
de verdade
Consultando soluo
resumida de mapas de
Karnaugh
extends
Consultando solues
de mapas de Karnaugh
extends
Consultando soluo
detalhada de mapas de
Karnaugh
extends
Utilizador
Resolvendo mapas
de Karnaugh
Resolvendo
resumidamente mapas de Karnaugh
extends
Resolvendo
detalhadamente mapas de Karnaugh
extends
Obtendo cdigo LDH
extends
Obtendo relatrios
de mapas de Karnaugh
Obtendo cdigo
Verilog
65 | P g i n a
Definindo
caractersticas do mapa de Karnaugh
extends
Inserindo contedo
de mapas de Karnaugh
Preenchendo mapa
de Karnaugh
extends
Preenchendo tabela
de Verdade
Consultando solues
de mapas de Karnaugh
Utilizador
Resolvendo mapas
de Karnaugh
Definindo
caractersticas da tabela de estados
Preenchendo a
tabela de estados
Consultado o restultado da
aplicao da Tcnica das
Parties
extends
Utilizador
Guardando tabelas de
estados na memria
Consultando os
diagramas de estados
66 | P g i n a
Consultando
Iteraes detalhadas
3.5.1.
KARNUMA (PC)
Ilustrao 1:
o Definindo Caractersticas do mapa de Karnaugh;
Ilustrao 2:
o Inserindo Contedo de mapas de Karnaugh;
o Preenchendo mapa de Karnaugh.
Ilustraes 3, 4 e 5:
o Resolvendo mapas de Karnaugh;
Resolvendo resumidamente mapas de Karnaugh.
67 | P g i n a
Selecionar 4 variveis
Preencher mapa de
forma automtica
1
Iniciar
Mapa
Continuar
3
Escolher
Resolver Mapa
68 | P g i n a
Escolher
Resolver Mapa
Selecionar os termos
pretendidos para formar
um Implicado
Validar um Implicado
composto pelos termos
selecionados
4
...j com todos os
Implicantes
formados
69 | P g i n a
Storyboard 2 (Fig. 40 e Fig. 41) Pretende-se obter a soluo detalhada de um mapa de Karnaugh de 5
variveis, em que a ordem das variveis de entrada seja CD/AB e a insero do contedo do mapa seja feita
por uma tabela de verdade. Nas ilustraes do Storyboard 2, representado nas Fig. 40 e Fig. 41, possvel
encontrar as seguintes tarefas:
Ilustrao 1:
o Definindo Caractersticas do mapa de Karnaugh.
Ilustrao 2:
o Inserindo Contedo de mapas de Karnaugh;
o Preenchendo tabela de Verdade.
Ilustraes 3, 4 e 5:
o Consultando solues de mapas de Karnaugh;
o Consultando soluo detalhada de mapas de Karnaugh.
Storyboard 2.1 (Fig. 42) A partir da ilustrao onde terminou o Storyboard 2, pretende-se demonstrar em
primeiro lugar como alterar a soluo apresentada para o mtodo da Soma de Produtos e seguidamente
mostrar como obter o relatrio do mapa de Karnaugh e os cdigos nas Linguagens de Descrio de Hardware
(LDH) Verilog e VHDL. Neste diagrama podem-se encontrar as seguintes tarefas:
Ilustrao 1:
o Consultando solues de mapas de Karnaugh;
o Consultando soluo detalhada de mapas de Karnaugh.
Ilustrao 2:
o Obtendo cdigo LDH;
o Obtendo cdigo Verilog;
o Obtendo cdigo VHDL;
o Obtendo relatrios de mapas de Karnaugh.
Nota: Os anexos A e B contm exemplos de relatrios gerados pela aplicao KarnUMa nos idiomas portugus e
ingls. Nos mesmos anexos podem ainda ser consultados os exemplos de cdigo VHDL e cdigo Verilog nos
respetivos pontos dos relatrios gerados.
70 | P g i n a
Selecionar 5 variveis
Selecionar CD/AB
como ordem das
variveis de entrada
Iniciar
Mapa
Opes de
preenchimento rpido
Introduzir os
valores de cada
termo
Continuar
3
Escolher
Ver Soluo (det.)
71 | P g i n a
Escolher
Ver Soluo (det.)
4
Continuar, passando pelos
vrios passos da soluo
detalhada
5
Soluo final do mapa
72 | P g i n a
Pressionar para
obter cdigo Verilog
2
Pressionar para
obter cdigo VHDL
73 | P g i n a
3.5.2.
Storyboard 1 (Fig. 43) Pretende-se resolver um mapa de Karnaugh de 3 variveis atravs do mtodo da Soma
de Produtos. Neste Storyboard podem-se identificar as seguintes tarefas:
Ilustrao 1:
o Definindo caractersticas do mapa de Karnaugh.
Ilustrao 2:
o Inserindo contedo de mapas de Karnaugh;
o Preenchendo mapa de Karnaugh.
Ilustraes 3, 4, 5 e 6:
o Resolvendo mapas de Karnaugh.
Storyboard 2 (Fig. 44) Pretende-se obter a soluo pela Produto de Somas de um mapa de Karnagh de 4
variveis em que o contedo deste ser inserido por uma tabela de verdade. Uma vez visualizada a soluo
pretende-se alterar a ordem das variveis de entrada e posteriormente observar a soluo do mesmo mapa pela
Soma de Produtos. Neste Storyboard encontram-se as seguintes tarefas:
Ilustrao 1:
o Definindo caractersticas do mapa de Karnaugh.
Ilustrao 2:
o Inserindo contedo de mapas de Karnaugh;
o Preenchendo tabela de Verdade.
Ilustraes 3, 4, 5 e 6:
o Consultando solues de mapas de Karnaugh.
74 | P g i n a
Selecionar 3
variveis
Selecionar Soma de
Produtos
Opes de
preenchimento
rpido
Passo
seguinte
Passo
seguinte
Selecionar os termos
pretendidos para forma um
Implicante
Resolver o mapa
de Karnaugh
Validar um Implicante
composto pelos termos
selecionados
4
...j com todos os
Implicantes formados
75 | P g i n a
Selecionar 4
variveis
Selecionar o valor de cada
termo pressionando a clula
da tabela de verdade
Selecionar Produto
de Somas
Selecionar tabela de
Verdade
Opes de
preenchimento
rpido
Passo
seguinte
1
2
Passo
seguinte
Ver a soluo do
Mapa
Alterar a ordem
das variveis de
entrada
3.5.3.
PARTEC
Storyboard 1 (Fig. 45) Pretende-se preencher uma tabela estados de uma mquina de Moore, com 7 estados,
1 entrada e 1 sada. Uma vez preenchida a tabela deve-se guarda-la como tabela 3. Neste Storyboard
identificam-se seguintes tarefas:
76 | P g i n a
Ilustrao 1:
o Definindo caractersticas da tabela de estados;
o Preenchendo a tabela de estados;
o Guardando tabelas de estados na memria.
2. Escolher o nmero de
3. Escolher o nmero de
estados
entradas
1. Escolher o tipo de
4. Escolher o nmero de
mquina de estados
sadas
2
6
5. Preencher a tabela de
estados
6. Gravar a tabela de
estados como Tabela 3
Storyboard 2 (Fig. 45) Pretende-se visualizar o resultado da execuo da Tcnica das Parties tabela
preenchida no Storyboard 1 (memorizada como Tabela 3). Posteriormente pretende-se observar as iteraes
detalhadas da Tcnica das Parties e por fim obter os diagramas de estados correspondentes soluo
apresentada.
Ilustraes 1 e 2:
o Consultando o resultado da aplicao da Tcnica as Parties.
Ilustrao 3:
o Consultando Iteraes detalhadas.
Ilustrao 4:
o Consultando os diagramas de estados.
77 | P g i n a
2
Pressionar para obter os
diagramas de estados
78 | P g i n a
3.6.1.
APLICAES KARNUMA
79 | P g i n a
gerar o esquema do circuito eltrico, mas esta falha pode ser colmatada pelo facto de fornecer cdigo fonte
Verilog e VHDL, a partir do qual diversas aplicaes conseguem gerar esse mesmo esquema.
3.6.2.
APLICAO PARTEK
A aplicao desenvolvida sobre a ferramenta de Sistemas Digitais, Tcnica das Parties disponibiliza as
seguintes funcionalidades:
80 | P g i n a
PC
Caractersticas
Assinala os Implicantes/Implicados
Introduo pelo Mapa
Introduo por Tabela de Verdade
Introduo por expresso algbrica
Suporta termos de valor indiferente
Expresso simplificada
Nmero mnimo de variveis
Nmero mximo de variveis
Resoluo SOP
Resoluo POS
Opes de preenchimento rpido do mapa
Apagar todo o mapa
Alterar ordem das variveis de entrada
Personalizar nomes das variveis
Nmero de ordem do minitermo
Tabela dos implicantes (Quine McCluskey)
Guardar e abrir Mapas
Gerar relatrio do Mapa
Gerar cdigo VHDL
Gerar cdigo Verilog
Exportar mapa em HTML
Gerar esquema elctrico
Utilizador pode resolver mapas de Karnaugh
Suporte didctico
Contm Exerccios
Suporta mais que um idioma
nfase aos Implicantes Primos Essenciais
Apresentao das diversas etapas que compem a resoluo de um Mapa
de Karnaugh
Utilizador pode resolver passando por todas as etapas da resoluo de um
mapa de Karnaugh
Fornece at 2 solues por mapa e capaz de verificar todas a solues
alternativas
Karnaugh
Minimizer
X
X
X
X
X
X
1
8
X
X
X
X
X
X
X
X
X
X
X
X
X
-
Telemvel
Karma
EasyKarnaugh
KarnUMa
X
X
X
X
X
X
2
8
X
X
X
X
X
X
X
X
X
X
-
X
X
X
X
3
4
X
X
X
X
X
X
X
-
X
X
X
X
X
3
6
X
X
X
X
X
X
X
X
X
X
X
X
Karnaugh Map
Advanced
X
X
X
X
X
1
8
X
X
-
Tabela 14 Comparao das aplicaes de referncia com as aplicaes desenvolvidas nesta tese sobre os mapas de Karnaugh.
81 | P g i n a
Pocket
KarnUMa
X
X
X
X
X
3
4
X
X
X
X
X
X
X
82 | P g i n a
4. AVALIAO DE USABILIDADE
Para realizar uma avaliao de usabilidade s aplicaes KarnUMa recorreu-se a um conjunto de
utilizadores que deveriam executar as tarefas apresentadas no ponto 3.5 Apresentao das aplicaes. O
desempenho dos utilizadores foi observado e com base nas Heursticas de Nielsen (Nielsen, 1994) tentaram-se
identificar as falhas de usabilidade existentes.
As 10 Heursticas de Nielsen utilizadas para identificar as possveis falhas de usabilidade so as seguintes:
1. Tornar o estado do sistema visvel O sistema deve manter sempre os utilizadores informados sobre o que
est acontecer, fornecendo feedback apropriado dentro de um intervalo de tempo aceitvel (Nielsen, 1994).
2. Correspondncia entre o sistema e o mundo real O sistema deve falar a linguagem dos
utilizadores, com palavras, frases e conceitos familiares ao utilizador, ao invs de termos orientados ao
sistema. Devem ser seguidas as convenes do mundo real para que as informaes apaream seguindo um
ordem natural e lgica (Nielsen, 1994).
3. Utilizador controla e livre-arbtrio Os utilizadores enganam-se frequentemente, logo necessrio fornecer
um "sada de emergncia" bvia para minimizar este engano. Fornecer opes de retroceder e repetir
(Nielsen, 1994).
4. Consistncia e adeso s normas Os utilizadores no devem ter a necessidade de adivinhar que diferentes
palavras, situaes ou aes tm o mesmo significado. Devem-se seguir as convenes de cada plataforma
(Nielsen, 1994).
5. Evitar erros Melhor do que boas mensagens de erro evitar que estes sucedam. As condies passveis de
erros devem ser eliminadas ou corretamente identificadas apresentando uma mensagem de confirmao
antes do utilizador executar uma ao comprometedora (Nielsen, 1994).
6. Reconhecer, em vez de lembrar Minimizar a necessidade do utilizador recorrer sua memria. O
utilizador no deve precisar de se lembrar de informao de um estado para o outro da aplicao. Instrues
de utilizao do sistema devem estar visveis e acessveis quando necessrias (Nielsen, 1994).
7. Flexibilidade e eficincia Fornecer atalhos, ainda que pouco ou nunca utilizados por um utilizador
principiante, podem frequentemente acelerar a interao no caso de utilizadores mais experientes. Permitir
aos utilizadores personalizar aes frequentes (Nielsen, 1994).
8. Desenho de ecr esttico e minimalista Os ecrs no devem conter informao irrelevante ou raramente
necessria. Cada unidade extra de informao num ecr est a competir com a informao relevante pela
ateno do utilizador, tornando esta ltima menos visvel (Nielsen, 1994).
9. Ajudar o utilizador a reconhecer, diagnosticar e recuperar dos erros As mensagens de erro devem ser
expressas em linguagem clara (sem cdigos), indicando com preciso o problema e construtivamente sugerir
uma soluo (Nielsen, 1994).
10. Dar ajuda e documentao Ainda que o ideal seja que o utilizador use o sistema sem recorrer a
ajudas, esta deve estar sempre disponvel. Tais informaes devem ser facilmente acedidas, focando-se na
tarefas do utilizador. Uma boa prtica consiste em listar os passos a serem realizados no se alongando em
demasia (Nielsen, 1994).
83 | P g i n a
4.1.1.
Antes
Depois
84 | P g i n a
b) A segunda falha de usabilidade, comum a ambas as verses, que foi identificada ocorria tambm
aquando da resoluo por parte do utilizador. Numa situao em que o utilizador j tivesse formado
corretamente alguns agrupamentos e por engano alterasse o mtodo de resoluo, ou seja estando a resolver
pela Soma de Produtos alterasse para Produtos de Somas, mesmo recorrendo funcionalidade de voltar atrs
os agrupamentos j feitos perdiam-se. Isto entra em desacordo com a heurstica 5 visto que a aplicao no
apresentava forma de minimizar este erro ou mesmo at mesmo evit-lo. Uma situao semelhante verificou-se
quando o utilizador escolhia por engano a opo Novo Mapa ou ainda se escolhesse sair do programa em
qualquer altura da sua execuo. Para colmatar estas falhas foram introduzidas as mensagens de confirmao
que podem ser visualizadas na Fig. 48.
Fig. 48 - Mensagens de Confirmao introduzidas para colmatar a falha de usabilidade da aplicao KarnUMa (ambas as
verses) descrita em b).
4.1.2.
a) Na resoluo por parte do utilizador constatou-se a situao ilustrada pela Fig. 49. Quando o utilizador
selecionava um termo que fizesse parte da composio de um agrupamento j identificado, este perdia essa
sinalizao (as linhas diagonais que identificam o agrupamento desapareciam) como se pode verificar na
ilustrao Antes da Fig. 49. Esta falha entra em conflito com a heurstica 1 uma vez que omite a j utilizao
daquele termo. Esta falha tornou-se ainda mais evidente porque o mesmo no se verificava na verso para
terminal mvel. Por forma a corrigir esta falha os termos selecionados passaram a manter as linhas diagonais
que os identificam como se pode verificar pela ilustrao Depois;
Antes
Depois
85 | P g i n a
b) A Fig. 50 ilustra outra falha de usabilidade identificada desta feita, aquando da apresentao da soluo
de um mapa de Karnaugh. Numa situao em que utilizador selecionava um agrupamento em particular de
forma a visiona-lo em exclusivo no mapa e posteriormente pretendia voltar a ver todos os agrupamentos
assinalados. O problema averiguado residia no facto de que para voltar a visionar o mapa com todos os grupos
assinalados o utilizador voltava a carregar no boto do tipo toggle que se encontrava pressionado, e nada
acontecia, visto que como de pode verificar pela ilustrao Antes da Fig. 50, para a ao pretendida deveria
pressionar no boto todos. Esta situao entra em conflito com a heurstica 4, visto que no comportamento
comum de um boto do tipo toggle, quando este deixa de estar pressionado a ao que este executa
igualmente cancelada. Para solucionar este problema, implementou-se o que est representado na ilustrao
Depois, ou seja para voltar a ver todos os agrupamentos ou solta-se o boto da frmula que est
pressionado ou pressiona-se Todos.
Antes
Depois
Fig. 50 - Falha de usabilidade especfica da verso PC da aplicao KarnUMa descrita em b).
c) A Fig. 51 ilustra mais uma falha de usabilidade aquando da resoluo por parte do utilizador. Desta feita
consistia na posio do boto que permite a validao dos agrupamentos. Quando se tratava de uma primeira
experincia com a aplicao verificou-se, muito frequentemente, que aps a seleo dos termos pretendidos
para formar um agrupamento os utilizadores ficavam perdidos sem saber o que fazer. Este problema residia
principalmente pela posio que o boto Validar Implicante assumia no ecr. Esta posio no respeitava a
heurstica 8, visto no era a mais visvel. Para colmatar esta falha o boto Validar Implicante foi colocado
numa posio onde passou a ser muito mais facilmente identificado como se pode verificar pela ilustrao
Depois da Fig. 51.
Antes
Depois
86 | P g i n a
d) Finalmente a ltima falha de usabilidade encontrada, ilustrada na Fig. 52, foi mais facilmente
identificada ao observar utilizadores que j tinham utilizado aplicao KarnUMa para terminal mvel. Isto
porque o mtodo de preenchimento de um mapa de Karnaugh ou tabela de verdade adotado por esta ltima
verso provou ser mais eficiente e intuitivo. Esta falha foi detectada essencialmente porque aps a utilizao da
verso terminal mvel os utilizadores tentam preench-lo da mesma forma, e deparavam-se que tal situao
no era possvel. O modo inicial de preenchimento exigia que o utilizador digitasse o valor pretendido para cada
clula do mapa ou tabela, j na verso terminal mvel o valor de cada clula alterava-se a cada clique e ainda
continha um conjunto de opes de preenchimento rpido. O modo de preenchimento inicial entrava em
conflito com as heursticas 5 e 7. Heurstica 5 porque uma vez que o valor tinha que ser digitado, caso isto no
acontecesse o mapa poderia ficar com clula sem qualquer valor, situao que originava um erro. Por fim a
Heurstica 6 porque o mtodo de preenchimento que foi adotado na verso final comprovou ser mais flexvel e
eficiente. Esta falha de usabilidade foi ultrapassada com a adoo do mesmo mtodo de preenchimento
presente na aplicao para terminal mvel como se pode verificar pela ilustrao Depois da Fig. 52.
Antes
Depois
4.1.3.
87 | P g i n a
Antes
Depois
b) Outro problema verificado consistia numa falha de usabilidade provocada pela utilizao da framework
Lwuit, isto porque por defeito esta framework coloca o menu e o seu boto de acesso no lado direito, como se
pode constatar pela ilustrao Antes da Fig. 54. Esta situao comeou por provocar alguma confuso aos
utilizadores e posteriormente verificou-se que a norma neste formato consiste em colocar o menu no lado
esquerdo. Esta situao entra em conflito com a heurstica 4, visto que a aplicao no estava a seguir um
aspeto que norma neste formato. Como se pode verificar pela ilustrao Depois da Fig. 54, o menu foi
colado no lado direito obedecendo norma deste formato.
Antes
Depois
4.1.4.
88 | P g i n a
confirmao o utilizador passa a receber informao de que posio de memria est a utilizar, bem como evitase o erro de substituir involuntariamente uma tabela j existente.
4.2. CONCLUSO
A avaliao de usabilidade consiste numa ferramenta essencial na conceo de software, visto que a
forma mais eficiente de garantir que uma aplicao ser minimamente funcional. Realizando uma boa avaliao
de usabilidade existe uma maior probabilidade de que o software disponibilizar uma boa experincia ao
utilizador final, o que deve ser sempre o objetivo principal no processo de desenvolvimento de software.
89 | P g i n a
90 | P g i n a
Home Esta a pgina principal do site (homepage) onde encontra-se disponvel uma breve introduo
ao trabalho bem como uma pequena descrio de cada uma das aplicaes desenvolvidas.
o KarnUMa Este o menu no qual encontram-se todas as ligaes referentes aplicao
KarnUma.
Apresentao Nesta pgina feita a apresentao aplicao KarnUMa.
KarnUma PC Nesta seco da pgina web encontram-se descritas as funcionalidades
de que a aplicao KarnUMa na verso PC dispe bem como uma galeria de imagens
desta mesma verso da aplicao.
Pocket KarnUMa - Telemvel Conta com contedos idnticos aos referidos em
KarnUMa PC, mas desta feita para a verso Pocket KarnUma (telemvel).
o ParTec Menu de acesso s pginas referentes aplicao ParTec.
Apresentao Pgina onde se encontra a apresentao da aplicao ParTec.
Caractersticas Seco onde se encontram as funcionalidades da aplicao ParTec e
uma galeria de imagens deste software.
o Dowloads Menu de acesso aos downloads das aplicaes
KarnUMa Pgina onde possvel descarregar todas verses aplicao KarnUma.
ParTec Pgina onde possvel descarregar todas verses da aplicao ParTec.
o Autores Identificao e apresentao dos autores.
Home
KarnUma
Apresentao
KarnUMa - PC
ParTec
Pocket
KarnUMa Telemvel
Apresentao
Downloads
Caractersticas
KarnUMa
Autores
ParTec
91 | P g i n a
92 | P g i n a
5. Utilize uma escrita eficaz A web desempenha uma papel distinto dos documentos impressos como tal a
escrita numa pgina web deve ser curta e concisa utilizando uma linguagem simples e objetiva, deve-se ainda
separar os contedos por categorias. Na pgina web criada optou-se por apresentar pequenas pores de texto
por cada pgina e por exemplo, ao apresentar uma aplicao optou-se por colocar as suas funcionalidades numa
outra seco acompanhada por imagens ilustrativas.
6. Mantenha a simplicidade Regra geral os utilizadores acedem a um site pelo seu contedo e no pelo seu
especto, portanto deve-se procurar a simplicidade ao invs da complexidade. Com um visual carregado existe
uma maior probabilidade que a informao essencial passe despercebida. Olhando para a Fig. 58 pode-se
verificar que a pgina tem um visual simples e no sobrecarregado.
7. No tenha medo dos espaos brancos Os espaos brancos so muito importantes, pois no s reduzem a
carga cognitiva como facilitam a perceo da informao apresentada da no ecr. A pgina criada conta com
espaos brancos suficientes para facilitar a sua perceo o que acaba tambm por torna-la mais apelativa.
8. Comunicar eficazmente com uma linguagem visvel Por linguagem visvel entende-se o contedo
apresentado no ecr. Este deve aparecer de forma organizada, deve-se fazer os possveis por fornecer o mximo
de informao com mnimo de elementos visveis mantendo a simplicidade. A escolha dos tipos de letra bem
como cores a utilizar na pgina devem garantir que esta ser legvel assegurando assim que a pgina consiga
comunicar a informao pretendida. Na pgina criada optou-se por, exceo dos logotipos, utilizar apenas dois
tipos de letra e manter uma sintonia ao nvel das cores utilizadas. Resta dizer ainda que todas as pginas do site
obedecem mesma estrutura.
As convenes so nossas amigas A utilizao de convenes diminui a curva de aprendizagem, pois se um
utilizador encontrar uma interface com uma estrutura que lhe familiar, ser-lhe- mais fcil utilizar essa mesma
interface. A partir do momento que a pgina web foi criada recorrendo a um gestor de contedos e como tal
obedece a um template a sua estrutura segue um conjunto de convenes.
9. Teste cedo, teste geralmente A realizao de testes ajuda a deteo de falhas na conceo de uma
interface. Assim como as aplicaes desenvolvidas, a pgina web foi objeto de testes.
Resta referir que esta pgina web pode ser acedida em: http://cee.uma.pt/morgado/aplicacoes_sd/.
93 | P g i n a
94 | P g i n a
CONCLUSO
Este projeto vem demonstrar as grandes potencialidades do recurso ao E-Learning no ensino. Recorrer
ao E-Learning no mais do que aproveitar uma infraestrutura j implementada na nossa sociedade. As
tecnologias, cada vez mais, representam uma componente indispensvel nossa sociedade, desempenhando j
inmeras funcionalidades como instrumento de trabalho, meio de comunicao, forma de entretenimento, etc.,
porque no desempenhar mais um papel fundamental como o caso da educao. O M-Learning assenta
exatamente no mesmo princpio, no fosse este uma derivao do E-Learning que recorre s tecnologias mveis.
O recurso a estas novas plataformas de ensino s vem reforar e evoluir o ensino para um novo patamar.
Ao criar uma aplicao sobre a ferramenta de Sistemas Digitais, mapas de Karnaugh, pretendia-se algo
mais do que um software que, dado um determinado problema, se limitasse a devolver a soluo. O objetivo
passava por uma aplicao que fosse capaz demonstrar ao seu utilizador como utilizar corretamente esta
ferramenta de Sistemas Digitais, permitindo tambm que o prprio utilizador resolvesse mapas de Karnaugh,
com a aplicao a validar os resultados. Analisando os objetivos pode-se afirmar que aplicao criada cumpre as
espectativas visto que conta com um modo denominado Ver soluo (det.) que apresenta a soluo de um
mapa de Karnaugh passo a passo, informando o utilizador do que se sucede em cada passo. Um outro aspeto
importante a evidenciar o facto de a aplicao contar com dois modos que permitem ao utilizador resolver um
mapa. Em que no primeiro o utilizador resolve o mapa executando todos os passos da mesma forma que sucede
quando demonstrada a soluo passo a passo, este modo mais indicado para uma fase inicial da
aprendizagem desta matria. J o segundo modo de resoluo permite resolver num nico passo, neste caso
todos os passos sero executados mentalmente, tendo o utilizador que indicar somente a soluo, este modo
mais indicado para verificar os conhecimentos adquiridos. Ainda relativamente a esta aplicao importante
referir que houve uma tentativa de implementar todas aquelas funcionalidades que foram consideradas mais
relevantes nas aplicaes referidas no estado de arte.
Terminada a aplicao sobre os mapas de Karnaugh pretendia-se transferi-la para um novo formato, o
dos terminais mveis. Converter esta aplicao para este formato apresentava como principais desafios as
prprias limitaes dos equipamentos quando comparados com um computador, como o caso das dimenses,
resolues e formatos do ecr, a menor memria e principalmente conseguir desenvolver a aplicao numa
plataforma que a tornasse disponvel a uma maior percentagem da comunidade de destino, ou seja, a
comunidade acadmica. Inicialmente a deciso recaiu sobre o Java para terminais mveis (J2ME), mas
posteriormente verificando-se o elevado crescimento da plataforma Android nestes mesmos terminais e a
facilidade de converso, decidiu-se disponibilizar esta aplicao igualmente nesta plataforma. Dados os
restantes desafios que a converso implica, no foi possvel disponibilizar todas as funcionalidades que existiam
na verso PC, sendo as principais ausncias os modos que permitem obter a resoluo assim como o de resolver
passo a passo. Ainda assim considera-se que o resultado foi uma aplicao interessante e completa dado o
formato a que se destina, o dos terminais mveis.
Ao desenvolver uma aplicao sobre a Tcnica das Parties os objetivo iniciais eram semelhantes aos
da aplicao sobre os Mapas de Karnaugh, contudo por questes de calendrio no foi possvel desenvolver uma
aplicao to completa. Assim sendo esta aplicao permite ao seu utilizador obter a soluo da correta
utilizao desta tcnica, oferecendo ainda a possibilidade de verificar os detalhes da sua execuo. Esta
95 | P g i n a
aplicao conta ainda com outras funcionalidades interessantes, ficando a faltar um modo que permitisse ao
prprio utilizador executar esta tcnica.
Terminado o desenvolvimento das aplicaes, pretendia-se disponibiliz-las comunidade de destino,
para tal foi criada uma pgina web a partir da qual possvel obter informaes das mesmas bem como
descarreg-las. Dado o elevando crescimento que os Sistemas de Gesto de Contedos tm demonstrado nos
ltimos tempos e dada a sua facilidade de utilizao, construiu-se a pgina web recorrendo a esta tecnologia.
Resta referir que foi escrito um artigo referente a uma parte do trabalho aqui desenvolvido,
nomeadamente as ferramentas sobre os mapas de Karnaugh. Este artigo concorreu conferncia Controlo12
tendo sido aceite para apresentao e encontra-se no anexo C. Espera-se que contribua para uma maior
visibilidade deste trabalho.
96 | P g i n a
REFERNCIAS
Pocket Karnaugh Map, Versao 1.0. (2002). (Emcon Emsys Technologies) Obtido em Novembro de 2010, de
http://download.cnet.com/Pocket-Karnaugh-Map-for-Pocket-PC-2002-2003/3000-2251_410957176.html
Karnaugh Minimizer, Verso 2.0. (2008).
http://karnaugh.shuriksoft.com/
(Shuriksoft)
Obtido
em
Novembro
de
2010,
de
97 | P g i n a
Eclipse Foundation. (2012). About the Eclipse Foundation. Obtido em 16 de Fevereiro de 2012, de
http://www.eclipse.org/org/
Enough Software. (2011). Don't Panic Mobile Developer's Guide to the Galaxy (9 ed.). Sogestrass, Breman,
Alemanha: Enough Software.
Friedman, V. (Janeiro de 2008). 10 Principles Of Effective Web Design. Obtido em 25 de Abril de 2012, de
http://uxdesign.smashingmagazine.com/2008/01/31/10-principles-of-effective-web-design/
Google.
Hunter,
JDOM.
Obtido
em
16
16
de
de
Fevereiro
Fevereiro
de
2012,
de
de
2012,
de
iText Software Corp. (2011). About iText: mission and Vision. Obtido em 2012 de Fevereiro de 2012, de
http://itextpdf.com/about.php
JoomlaPT. (2012). JoomlaPT!com Comunidade Joomla Portuguesa. Obtido em 15 de Abril de 2012, de
http://www.joomlapt.com/sobre-o-joomla/o-que-e-joomla.html
Keppler, M. (2010). Karnaugh-Minimierung. (Technical University Ilmenau, Alemanha) Obtido em Novembro de
2010, de http://www-ihs.theoinf.tu-ilmenau.de/~sane/projekte/karnaugh/
Knudsen, J. (Setembro de 2008). The Lightweight User Interface Toolkit (LWUIT): An Introduction. (Oracle, Editor)
Obtido
em
16
de
Fevereiro
de
2012,
de
http://java.sun.com/developer/technicalArticles/javame/lwuit_intro/
Kotonya, G., & Sommerville, I. (Janeiro de 1996). Requirements Engineering Processes. Software Engineering
Journal , XI(1), 5-18.
Kovacevic, R. (2005). Karnaugh Map Minimizer, Verso 0.4. Obtido em Novembro de 2010, de http://kmap.sourceforge.net/
LiteratePrograms. (2010). Quine-McCluskey algorithm (Java). Obtido em 22 de Fevereiro de 2012, de
http://en.literateprograms.org/Quine-McCluskey_algorithm_(Java)
Musser, J., & O'Reilly, T. (2006). Web 2.0 Principles and Best Practices.
Muyinda, P. B. (2007). MLearning: pedagogical, technical and organisational hypes and realities. 24, 97-104.
Naidu, S. (2006). E-Learning - A Guidebook of Principles, Procedures and Practices (2 ed.). University of
Melbourne, Australia: Commonwealth Educational Media Center for Asia (CEMCA).
Namahn. (2011). E-Learning - A research note. Obtido de http://www.namahn.com/resources/documents/noteE-Learning.pdf
Nielsen, J. (24 de Abril de 1994). Enhancing the Explanatory Power of Usability Heuristics. Human Factors in
Computing System, pp. 152-158.
98 | P g i n a
Oracle.
de
2012,
de
de
Park, Y. (Fevereiro de 2011). A Pedagogical Framework for Mobile Learning: Categorizing Educational
Applications of Mobile Technologies into Four Types. International Review of Research in Open and
Distance Learning.
Passos, H. (2010). Pequeno guia do E-Learning. Rua das Indstrias 27 - A Venda Nova, Portugal: Cinel.
Reis, A. I., & Ribas, R. P. (2011). Karma, Verso 3.61. (Logic Circuit Synthesis Labs, Instituto de Informtica,
Universidade Federal do Rio Grande do Sul, Brasil) Obtido em Outubro de 2011, de
http://www.inf.ufrgs.br/logics/index.php?option=com_docman&task=doc_download&gid=202&Itemid=
58
Sandes,
Obtido
em
Outubro
Novembro
de
de
2011,
2010,
de
de
Sena, A., & Torres, M. (2009). EasyKarnaugh 3.0 - Uma ferramenta computacional para o auxlio no ensino de
Mapas de Karnaugh em Lgica Digital. Universidade Estadual de Santa Cruz, Departamento de Cincias
Exatas e Tecnologias, Brasil.
Srro, C., Carvalho, J., & Arroz, G. (Outubro de 2005). lgebara de Boole Binria, Funes booleanas. Instituto
Superior Tcnico.
Strickland, J. (2011). Is there a Web 1.0?
http://computer.howstuffworks.com/web-101.htm
Obtido
em
Novembro
de
2011,
de
Tocci, R. J., & Widmer, N. S. (2001). Digital Systems, Principles and Applications (8 ed.). Prentice Hall.
Tomaszewski, S. P., U.Celik, I., & Antoniou, G. E. (2003). WWW-BASED BOOLEAN FUNCTION MINIMIZATION. BAE
Systems Controls, 13, pp. 577-583.
Traxler, J. (2005). Defining Mobile Learning. International Conference Mobile Learning. Wolverhampton, Reino
Unido: IADIS .
Zuba, J. G. (2003). Educational Software for Digital Electronics: BOOLE-DEUSTO. IEEE International Conference
on Microelectronic Systems Education.
99 | P g i n a
100 | P g i n a
ANEXOS
ANEXO A
Este anexo consiste num relatrio gerado automaticamente pela aplicao KarnUMa.
101 | P g i n a
102 | P g i n a
KarnUMa 2012
Relatrio
1. Funo inicial
1.1. Tabela de Verdade:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
A
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
B
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
E
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
F
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
X
0
0
0
0
X
1
0
0
1
1
1
0
0
1
1
X
Pg. 1 de 5
KarnUMa 2012
00
01
11
10
CD / AB
00
01
11
10
00
00
01
01
11
11
10
10
E=0
E=1
2. Solues
2.1. Soma de Produtos
2.1.1. Soluo
CD / AB
00
01
11
10
CD / AB
00
01
11
10
00
00
01
01
11
11
10
10
E=0
E=1
F= A C D E + A D E + A B C E + B C D + A B C E + A C D E + B D E
Implicantes Primos Essenciais: A C D E , A D E , A B C E
Implicantes Primos: B C D , A B C E , A C D E , B D E
Pg. 2 de 5
KarnUMa 2012
00
01
11
10
CD / AB
00
01
11
10
00
00
01
01
11
11
10
10
E=0
E=1
Pg. 3 de 5
KarnUMa 2012
A, B, !D);
A, C, D);
!C, !D, !E);
!B, C, D, !E);
A, !C, !E);
!A, !C, D, E);
!A, B, D, E);
w1, w2, w3, w4, w5, w6, w7);
endmodule
Pg. 4 de 5
KarnUMa 2012
F: out STD_LOGIC);
end KarnaughFunction;
architecture synth of KarnaughFunction is
begin
F <=(A or B or (not D)) and
(A or C or D) and
((not C) or (not D) or (not E)) and
((not B) or C or D or (not E)) and
(A or (not C) or (not E)) and
((not A) or (not C) or D or E) and
((not A) or B or D or E);
end;
Pg. 5 de 5
ANEXO B
Este anexo consiste no mesmo relatrio gerado pela aplicao que consta no Anexo A, mas desta feita utilizando
o idioma Ingls.
109 | P g i n a
110 | P g i n a
KarnUMa 2012
Report
1. Initial function
1.1. Truth Table:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
A
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
B
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
E
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
F
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
X
0
0
0
0
X
1
0
0
1
1
1
0
0
1
1
X
Page 1 of 5
KarnUMa 2012
00
01
11
10
CD / AB
00
01
11
10
00
00
01
01
11
11
10
10
E=0
E=1
2. Solutions
2.1. Sum-of-Products
2.1.1. Solution
CD / AB
00
01
11
10
CD / AB
00
01
11
10
00
00
01
01
11
11
10
10
E=0
E=1
F= A C D E + A D E + A B C E + B C D + A B C E + A C D E + B D E
Essential Prime null: A C D E , A D E , A B C E
Prime null: B C D , A B C E , A C D E , B D E
Page 2 of 5
KarnUMa 2012
2.2. Product-of-Sums
2.2.1. Solution
CD / AB
00
01
11
10
CD / AB
00
01
11
10
00
00
01
01
11
11
10
10
E=0
E=1
KarnUMa 2012
/*---------------------------------------------------- Code generated by Karnuma V 0.9 -----------------------------------------------------*/
module Karnaugh(A, B, C, D, E, F);
input A;
input B;
input C;
input D;
input E;
output F;
or (w1,
or (w2,
or (w3,
or (w4,
or (w5,
or (w6,
or (w7,
and (F,
A, B, !D);
A, C, D);
!C, !D, !E);
!B, C, D, !E);
A, !C, !E);
!A, !C, D, E);
!A, B, D, E);
w1, w2, w3, w4, w5, w6, w7);
endmodule
Page 4 of 5
KarnUMa 2012
begin
F <=(A or B or (not D)) and
(A or C or D) and
((not C) or (not D) or (not E)) and
((not B) or C or D or (not E)) and
(A or (not C) or (not E)) and
((not A) or (not C) or D or E) and
((not A) or B or D or E);
end;
Page 5 of 5
ANEXO C
Artigo KARNUMA AN EDUCATIONAL TOOL FOR DIGITAL SYSTEMS, escrito para a 10 conferncia Portuguesa
de Controlo Automtico Controlo12.
117 | P g i n a
118 | P g i n a
Madeira Interactive Technologies Institute and Centro de Competncias de Cincias Exactas e da Engenharia,
Universidade da Madeira
Campus da Penteada, 9000-039 Funchal, Madeira, Portugal.
Tel:+351 291-705150/1, Fax: +351 291-705199
morgado@uma.pt
Abstract: This paper presents an application called KarnUMa which aims to demonstrate
the operation of the Karnaugh Maps which are used to simplify Boolean algebra
expressions. This application is available in two variants with different target platforms,
the first, KarnUMa available for computer and the second Pocket KarnUMa available for
mobile terminals in either Midlet or Android Package. This paper addresses the existing
applications in this area that served as inspiration, the technologies chosen for the
development of this software, and finally it presents the KarnUMa applications
identifying the new features introduced by them as well as new approaches that were
made to already existing features in the reference applications. . Copyright CONTROLO
2012.
1.
INTRODUCTION
2.
2.3. Karma
Fig. 1. Karnaugh Minimizer (ShurikSoft, 2008).
At the time of this papers writing this software was
in the 2.0 release.
2.2. EasyKarnaugh
The approach taken to Karnaugh maps by (Sena et
Torres, 2009) is represented in Fig. 2. This approach
stands out from the previous application for being
targeted for education. This application aims to teach
its users how to solve a Karnaugh map. Taking into
consideration the purpose of this application it can be
said that its design was made with the objective of ELearning given that the description made by the
authors of the application is as follows A
computational tool to aid in the teaching of Karnaugh
maps in Computational Logic (Sena et Torres,
2009). This application has four main components:
Presentation of Karnaugh Maps Theory;
Solutions visualization in which the solutions
3.
CHOOSING TECHNOLOGIES
4.
4.3.1.
View Solution
4.3.3.
Solve Map
5.
5.3.1.
View Solution
ACKNOWLEDGMENTS
The authors would like to acknowledge the
Portuguese Foundation for Science and Technology
for their support for this work through project PEstOE/EEI/LA0009/2011.
REFERENCES
5.3.2.
Solve Map
CONCLUSION
Bowles, M. (2004). Relearning to E-Learn Stratagies for electronic learning and knowladge
(Vol. Cap. 1). Merbourne University Publishing
Ltd, Polar Design Pty Ltd.
Enough Software. (2011). Don't Panic Mobile
Developer's Guide to the Galaxy (9th ed.).
Sogestrass, Breman, Germany: Enough Software.
Google. (2012). Android 4.0 Platform Highlights.
Retrieved
February
16,
2012,
from
http://developer.android.com/sdk/android-4.0highlights.html
LiteratePrograms.
(2010).
Quine-McCluskey
algorithm (Java). Retrieved February 22, 2012,
from
http://en.literateprograms.org/QuineMcCluskey_algorithm_(Java)
ORACLE. (2012). Java. Retrieved February 16,
2012, from http://www.java.com/pt_BR/about/
ORACLE. (2012). JAVA FOR MOBILE DEVICES.
Retrieved
February
16,
2012,
from
http://www.oracle.com/technetwork/java/javame/
javamobile/overview/getstarted/index.html
Reis, A. I., et Ribas, R. P. (2011). Karma, 3.61.
(Logic Circuit Synthesis Labs, Instituto de
Informtica, Universidade Federal do Rio Grande
do Sul, Brazil) Retrieved October 2011, from
http://www.inf.ufrgs.br/logics/index.php?option=
com_docman&task=doc_download&gid=202&It
emid=58
Sena, A., et Torres, M. (2009). EasyKarnaugh 3.0 Uma ferramenta computacional para o auxlio
no ensino de Mapas de Karnaugh em Lgica
Digital. Universidade Estadual de Santa Cruz,
Departamento de Cincias Exatas e Tecnologias,
Brazil.
ShurikSoft. (2008). Karnaugh Minimizer, 2.0.
(Shuriksoft) Retrieved November 2010, from
http://karnaugh.shuriksoft.com/
Traxler, J. (2005). Defining Mobile Learning.
International Conference Mobile Learning.
Wolverhampton, United Kingdom: IADIS.