Você está na página 1de 137

CENTRO UNIVERSITÁRIO DO NORTE - UNINORTE

CURSO DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE


RELATÓRIO FINAL DO TRABALHO DE CONCLUSÃO DE CURSO

Graduação em Tecnologia em Desenvolvimento de Software

Sistema de Ensino da Matemática via TV Digital In terativa

por

Gabriel Paes Barreto do Nascimento Oliveira


José Henrique Santos Cavalcante
Henrique Simch de Morais
Michela dos Santos Gonzaga

Manaus – Julho de 2009


CENTRO UNIVERSITÁRIO DO NORTE - UNINORTE
CURSO DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE
RELATÓRIO FINAL DO TRABALHO DE CONCLUSÃO DE CURSO

GABRIEL PAES BARRETO DO NASCIMENTO OLIVEIRA


JOSÉ HENRIQUE SANTOS CAVALCANTE
HENRIQUE SIMCH DE MORAIS
MICHELA DOS SANTOS GONZAGA

Sistema de Ensino da Matemática via TV Digital Interativa

Este trabalho foi apresentado à Graduação


em Tecnologia em Desenvolvimento de
Software do Centro Universitário do Norte
– UNINORTE como requisito parcial para
obtenção do grau Tecnólogo em
Desenvolvimento de Software.

ORIENTADOR: Prof. Msc. Ricardo da Silva Barboza

Manaus – Julho de 2009


TRABALHO DE CONCLUSÃO DE CURSO
CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE

TERMO DE APROVAÇÃO

O Trabalho de Conclusão de Curso “ Sistema de Ensino da Matemática Via TV Digital


Interativa”, elaborado pelos alunos Gabriel Paes Barreto do Nascimento Oliveira, José
Henrique Santos Cavalcante, Henrique Simch de Morais e Michela dos Santos Gonzaga ,
foi julgado adequado por todos os membros da Banca Examinadora, para a obtenção do grau
de Tecnólogo em Desenvolvimento de Software e aprovado, em sua forma final, pelo Curso
Superior de Tecnologia em Desenvolvimento de Software do Centro Universitário do Norte.

Manaus, --- de julho de 2009.

___________________________________________________
Prof. Ricardo da Silva Barbosa, Msc.
Orientador do TCC

Banca Examinadora integrada pelos seguintes professores:

__________________________________________
Prof. Ricardo da Silva Barbosa, Msc.

_________________________________________
Prof. Wanderlan Carvalho de Albuquerque, Esp.
AGRADECIMENTOS

Agradeço em primeiro lugar a Deus, pois sem Ele não seria possível a
realização desse trabalho.
A minha mãe, Jacqueline Paes Barreto do Nascimento, a minha avó Ruth
Maria Paes Barreto do Nascimento, a minha ti a Sheila Furtado Abrahim e a toda
minha família que sempre torceu pelo meu sucesso, pelo apoio dado em toda minha
vida e seus conselhos.
Aos professores do curso que muito contribuíram solucionando minhas
dúvidas.
Aos meus colegas, Michela, Henrique e José Henrique que me ajudaram nesta
conquista.
Aos meus colegas da classe, com quem compartilhamos muitos desafios.

Gabriel Paes Barreto do Nascimento Oliveira.

i
AGRADECIMENTOS

Agradeço em primeiro lugar a Deus que tem sempre abençoado a minha vida,
aos meus pais e familiares que sempre me apoiaram durante todo o curso, aos meus
amigos e colegas da graduação e pós -graduação.

(José Henrique Santos Cavalcante)

ii
AGRADECIMENTOS

A Deus por ter estado ao meu lado , por mais uma etapa vencida , pelas novas
etapas que advirão, pelos Meus Pais Areovaldo de Morais e Tereza Maria Morais,
pelo apoio, amor e carinho proporcionados todos estes anos, pela Minha Irmã Marta
Helena, por suas sábias palavras em todos os momentos, pelo Meu Irmão Nathaniel S.
Morais, pela força e caráter que irradia, pelos Meus Mestres desde a minha infância
até a graduação, pelos Meus colegas de turma.
Em especial aos meus colegas de equipe, Michela, Gabriel e José Henrique,
além de todos aqueles que de alguma forma contribuí ram com o sucesso desta etapa
de minha vida.
(Henrique Simch de Morais)

iii
AGRADECIMENTOS

Agradeço em primeiro lugar a Deus, pois sem Ele não seria possível a
realização desse trabalho.
A minha mãe, Maria Glória dos Santos Gonzaga, e ao meu padrast o Raimundo
Auzier Cruz Ribeiro pelo apoio dado em toda minha vida e seus conselhos.
Ao meu esposo Irlan Monteiro Araújo, que me ajudou nesta caminhada, com
seu apoio e conselhos.
Aos professores do curso que muito contribuíram solucionando minhas
dúvidas.
Aos meus colegas, Gabriel, Henrique e José Henrique que me ajudaram nesta
conquista.
Aos meus colegas da classe, com quem compartilhamos muitos desafios.

(Michela dos Santos Gonzaga)

iv
RESUMO

A televisão tornou-se uma das principais fontes de inf ormação, cultura e


entretenimento. Associada a mais nova mudança, a digitalização do sinal, a
transmissão digital não só deverá proporcionar significativa melhora na qualidade da
imagem e do som como também possibilitará a transmissão de vários programas e m
um único canal. Porém a característica mais interessante da TV digital combinada
com um canal de retorno é a possibilidade da criação de serviços interativos como
vídeo sobre demanda, pay-per-view, home shopping, jogos, chat , EAD (educação a
distância). O objetivo desse trabalho de conclusão de curso é documentar e
desenvolver um sistema informatizado de auxílio ao ensino da matemática, utilizando
as vantagens que as tecnologias WEB e TV Digital propiciam.

v
ABSTRACT

The television has become a major source of information, culture and


entertainment. Associated with the newest changes, the digitization of the signal, the
digital transmission not only should provide significant improvement in picture
quality and sound but also the transmission of m ultiple programs in a single channel.
But the most interesting feature of digital TV combined with a return channel is the
possibility of creating interactive services as video on demand, pay -per-view, home
shopping, games, chat, DE (distance education). This Work of Completion of Course
is to document and develop a system of aid to the teaching of mathematics, using the
advantages that the Web and Digital TV technologies provide.

vi
ÍNDICE

1. INTRODUÇÃO ..................................................................................................1
1.1. JUSTIFICATIVA.........................................................................................2
1.2. OBJETIVOS ................................................................................................3
1.2.1. Geral .....................................................................................................3
1.2.2. Específico .............................................................................................4
1.3. ORGANIZAÇÃO DO TRABALHO ............................................................4
2. REVISÃO BIBLIOGRÁFICA ............................................................................5
2.1. METODOLOGIA ........................................................................................5
2.1.1. Ciclo de Vida ........................................................................................6
2.1.2. UML (Unified Modelin Laguage) .........................................................8
2.1.3. Banco..................................................................................................13
2.1.4. Arquitetura ..........................................................................................13
2.1.5. Tecnologias.........................................................................................16
3. ANÁLISE .........................................................................................................32
3.1. Descrição do Sistema .................................................................................32
3.2. Listas de Funções .......................................................................................34
3.3. UC – Caso de Uso ......................................................................................35
3.3.1. Diagrama de Caso de Uso ...................................................................35
3.3.2. Descrição e Casos de Uso ....................................................................36
3.4. Diagrama de Classes ..................................................................................41
3.5. Diagramas de Seqüência.............................................................................42
3.5.1. Diagrama de Seqüência - Praticar Exercício. .......................................42
3.5.2. Diagrama de Seqüência - Responder Enquete. .....................................43
3.5.3. Diagrama de Seqüência - Executar Desafio. ........................................44
3.6. Diagramas de Atividades ............................................................................45
3.6.1. Diagrama de Atividades – Executar Desafio ........................................45
3.6.2. Diagrama de Atividades – Praticar Exercício.......................................46
3.6.3. Diagrama de Atividades – Responder Enquete ....................................47
3.6.4. Diagrama de Atividades – Manter Aluno.............................................48

vii
3.7. Diagrama de Estado ...................................................................................49
3.7.1. Diagrama de Estado – Responder Enquete ..........................................49
3.7.2. Diagrama de Estado – Praticar Exercício .............................................50
3.7.3. Diagrama de Estado – Executar Desafio ..............................................51
3.8. Diagrama de DER ......................................................................................52
4. PROJETO .........................................................................................................53
4.1. UC – Caso de Uso ......................................................................................53
4.1.1. Diagrama de Caso de Uso ...................................................................53
4.1.2. Descrição e Casos de Uso ....................................................................54
4.2. Diagrama de Classes ..................................................................................67
4.3. Diagrama de Seqüência ..............................................................................69
4.4. Diagrama de ER .........................................................................................73
4.5. Mapeamento Objeto Relacional – MOR .....................................................74
4.6. Projeto de Banco de Dados .........................................................................75
4.6.1. Mapeamento do Banco ........................................................................75
4.6.2. Dicionário de Dados ............................................................................76
4.7. Projeto de Interface ....................................................................................80
4.7.1. Interface do Tipo Saída de Dados ........................................................80
4.7.2. Interface do Tipo Processamento – Desafios .......................................81
4.7.3. Interface do Tipo Saída de Dados - Tela Tutorial.................................83
4.7.4. Interface do Tipo Processamento – Enquete ........................................84
4.7.5. Interface do tipo processamento - Praticar Exercício ........................... 85
4.7.6. Interface do tipo Saída de Dados – Exercício.......................................86
4.7.7. Interface do Tipo Processamento – Assistir Vídeo-Aula ......................88
4.7.8. Interface do Tipo Saída de dados – Programação.................................89
4.7.9. Tela do Tipo Saída de Dados – Curiosidades .......................................90
4.7.10. Interface do Tipo Entrada de dados – Login ........................................91
4.7.11. Interface do Tipo Saída de Dad os ........................................................92
4.7.12. Interface do Tipo Entrada de Dados .....................................................94
4.7.13. Interface do Tipo Entrada de Dados .....................................................96
4.7.14. Interface do Tipo Saída de Dados ........................................................... 97
4.7.15. Tela Dados Usuário – Dados Usuário Aluno .......................................98
4.7.16. Interface do Tipo Relatório................................................................ 100

viii
4.7.17. Interface do Tipo Mensagem ............................................................. 102
4.7.18. Aspectos Ergonômicos ......................................................................108
4.7.19. Projeto Navegacional ........................................................................113
5. Considerações Finais e Trabalhos Futuros .................................................... 115
6. REFERÊNCIAS BIBLIOGRÁFICAS ............................................................. 118
ANEXOS ...............................................................................................................122

ix
LISTA DE FIGURAS

Figura 1- Notação do diagrama de Caso de Uso na UML. [MED04] ...........................9


Figura 2 - Notação do diagrama de classes. [MED04] ...............................................10
Figura 3 - Notação do diagrama de seqüênci a [MED04] ...........................................11
Figura 4 - Notação do diagrama de Atividades. [MED04] .........................................12
Figura 5 - Notação do diagrama de Estados. [MED04] .............................................12
Figura 6 - Modelo MVC [MAC]. ..............................................................................15
Figura 7 - Pilha de Software para receptor de TV Digital. [GRA] ............................. 17
Figura 8 - Funcionamento Servlet [DSC] ..................................................................18
Figura 9 - Funcionamento JSP [HEN] ......................................................................19
Figura 10 - Pacote JSTL [ANT]................................................................................20
Figura 11 - Fluxo de uma aplicação Struts [JAV] .....................................................22
Figura 12 - Arquitetura de um set-top box genérico utilizando tecnologia Java [UNI]
.................................................................................................................................25
Figura 13 - Estados possíveis de uma Xlet [UNI] ......................................................26
Figura 14 – Menu Principal – Módulo Embarcado ....................................................80
Figura 15 – Interface Desafios – Questão e alternativas ............................................81
Figura 16 - Interface Desafios – Resultado Positivo ..................................................81
Figura 17 - Interface Desafios – Resultado Negativo ................................................82
Figura 18 - Interface Desafios - Tutorial ...................................................................83
Figura 19 - Interface Enquete – Questão e Alternativas.............................................84
Figura 20 Interface Enquete - Resultados..................................................................84
Figura 21 - Interface Exercícios – Seleção de Assuntos ............................................85
Figura 22 - Interface Exercícios – Resolução de Questão ..........................................85
Figura 23 - Interface Exercícios – Resultado............................................................. 86
Figura 24 - Interface Exercícios – Atenção – Aluno com média acima de 60% no
assunto selecionado. Resolução não obrigatória ........................................................87
Figura 25 - Interface Vídeo Aula ..............................................................................88
Figura 26 – Interface Atenção – nível do aluno inferior ao do assunto. .....................89
Figura 27 – Interface Vídeo-Sinopse.........................................................................89
Figura 28 – Interface Curiosidades – Questão e Descrição ........................................90
Figura 29 – Interface Login – Módulo Web .............................................................. 91

x
Figura 30 – Interface Menu Principal – Módulo Web ...............................................92
Figura 31 – Interface Menu Principal – Menu Drop Down .......................................93
Figura 32 – Interface Pesquisar Usuário ...................................................................94
Figura 33 – Interface Consultar Usuário ...................................................................94
Figura 34 – Interface Pesquisar Usuário – Dados Pesquisados ..................................95
Figura 35 – Interface Pesquisar Usuário – Seleção de Usuário ..................................95
Figura 36 – Interface Novo Usuário ..........................................................................96
Figura 37 – Interface Dados do Usuário Administrador ............................................97
Figura 38 – Interface Dados do Usuário Aluno .........................................................98
Figura 39 – Menu Drop Down – Seleção de Relatório ............................................100
Figura 40 – Relatórios Disponíveis.........................................................................100
Figura 41 – Interface Relatório ...............................................................................101
Figura 42 – Mensagem de Exclusão .......................................................................102
Figura 43 – Confirmação da Exclusão ....................................................................102
Figura 44 – Mensagem confirmando cadastro do usuário ........................................103
Figura 45 – Interface Dados do Usuário Administrador ..........................................103
Figura 46 – Mensagem solicitando confirmação de senha padrão ........................... 104
Figura 47 – Mensagem Dados incorretos ................................................................ 104
Figura 48 – Mensagens de erro ...............................................................................104
Figura 49 – Mensagem de erro – Nível do administrador incorreto ......................... 105
Figura 50 – Mensagem de erro ...............................................................................105
Figura 51 – Mensagens de erro ...............................................................................106
Figura 52 – Mensagens de erro ...............................................................................106
Figura 53 – Mensagens de erro – Registro não Encontrado .....................................107
Figura 54 – Mensagens de erro - Campo de Pesquisa em Branco ............................ 107
Figura 55 – Mensagens de erro – Módulo Embarcado – Falha na comunicação ......107
Figura 56 - Famílias de tipos utilizados pelas emissoras BBCi e SKY. ...................108
Figura 57 - Visão de indivíduos normais e de portadores de daltonismo. ................110
Figura 58 – Modelos de Controles-Remotos utilizados pela tecnologia TVDigital ..111
Figura 59 – Modelo Navegacional – Módulo Web..................................................113
Figura 60 – Modelo Navegacional – Módulo Embarcado .......................................114

xi
1

1. INTRODUÇÃO

A educação representa um dos mais importantes setores responsáveis


pelo desenvolvimento de uma nação. É produzindo conhecimento que um país
aumenta sua renda e a qualidade de vida de seu povo. Apesar de, nas últimas décadas,
o Brasil ter avançado neste campo, ainda há muito para ser feito.
O desenvolvimento de um país desacelera com uma educação precária,
todas as pessoas necessitam e devem ter acesso à educação. A educação à distância
(EAD) mostrou que é possível levar educação de qualidade aos lares dos brasileiros,
através de um meio de comunicação muito comum, a televisão. Como uma das
principais características do meio tecnológico é não para r de evoluir, diariamente
surgem novas tecnologias, ou tecnologias existentes são aperfeiçoadas, a fim de
atender uma sociedade que exige quantidade e qualidade. Dentre as muitas inovações
tecnológicas podemos citar a televisão digital.
A televisão digital é uma nova mídia que estabelece uma nova relação
de comunicação com o telespectador, gerando mudanças significativas em seus
hábitos. Surgiu com o intuito de unir um meio de comunicação de massa, presente em
milhares de lares brasileiros, com a interativi dade e facilidade que a internet pode
oferecer, onde o telespectador deixa de somente assistir à TV e passa a utilizar a TV
digital para diferentes serviços e funcionalidades.
2

Segundo [CUN08], “Essa nova tecnologia, pelo fato de ser digital,


permite a interatividade do sistema com o telespectador, que passa da passividade a
uma atitude ativa frente às transmissões. A televisão digital permite a navegação na
Internet, o comércio eletrônico, a transmissão de programas e a comunicação através
da TV. A interatividade traz consigo a necessidade de “retorno”, ou seja, que a
comunicação flua também no sentido do receptor ao emissor do sinal, diferentemente
do que ocorre nas transmissões analógicas”.
Embora a inserção da TV Digital no Brasil não objetivar apenas a
inclusão social, apesar de todo seu potencial para tanto, ela somente contribuirá na
medida em que puder assegurar às camadas menos favorecidas da população
oportunidades de acesso à informação e serviços sociais, especialmente educacionais.
Entretanto, em países emergentes como o Brasil, considerando a baixa
presença da internet e computadores nos lares, bem como a falta de centros de acesso
livre à Internet, a TV torna -se um veículo importante na divulgação e acesso da
população a educação. A internet est á acessível a 15% da população brasileira [IBG],
ou seja, o Brasil ainda não é um país on-line e demorará um pouco para o ser.
Considerando que o entretenimento continuará sendo a principal razão pela qual as
pessoas ligarão seus aparelhos de TV, a educaçã o oferecida pela TV digital conterá
fortes indícios de audiovisual e atributos de qualidade diferentes dos que vêm sendo
utilizados em outros ambientes de aprendizagem, como internet, CD ROM, rádio,
mídia impressa.
Para elaboração deste projeto levou -se em conta problemáticas, que
caracterizam a realidade brasileira, como descrita no item a seguir.

1.1. JUSTIFICATIVA

Problemas enfrentados pelos pais na educação dos filhos, como fazer


com que eles se interessem pelos conteúdos ministrados em sala de aula, e re almente
se dediquem ao estudo, justificam por si só o desenvolvimento deste projeto. Hoje
além do dinheiro gasto com escolas particulares para a melhor formação dos filhos, os
pais ainda devem arcar com as despesas extras como material didático, curso pré -
vestibular e outras formas para reforçar o estudo. Apesar de todos esses gastos, os pais
3

muitas vezes não têm como controlar a freqüência e aproveitamento dos filhos nos
estudos. Outro problema enfrentado é a dificuldade de locomoção dos alunos até o
local de estudo, devido a fatores como trânsito, distância, clima, que contribuem para
o baixo desempenho e aumento da evasão escolar.
Além de excelentes programas educacionais, computadores nas
escolas, televisão convencional acessível via TV Escola, acredita -se que o contexto
atual de explosão de conhecimentos requer uma estratégia precisa de uso e divulgação
dos meios de comunicação já existentes em conjunto com os que estão surgindo.
Há uma carência grande no mercado brasileiro e não há uma solução
única, por um único meio digital disponível. As necessidades brasileiras devem ser
tratadas no âmbito local. Existem poucos projetos de TV digital voltada à educação no
mundo. Esse fato se dá porque o sistema educacional e o acesso a informação nos
países desenvolvidos é um fato e não um problema a ser resolvido.
Para tanto, desenvolver um sistema com foco na tecnologia da TV
Digital Interativa, destinado ao ensino matemático nível médio, cuja descrição
encontra-se no tópico seguinte, tornou -se o objetivo principal deste trabalho de
conclusão de curso.

1.2. OBJETIVOS

1.2.1. Geral

Desenvolver um sistema de ensino matemático para TV Digital


possibilitando a melhoria do ensino para alunos que possuem dificuldades no
aprendizado da matemática.
4

1.2.2. Específico

 Cadastrar e controlar informações de alunos e


administradores;
 Manter vídeos-aula;
 Manter assuntos;
 Manter exercícios;
 Manter enquetes;
 Manter desafios;
 Manter curiosidades;
 Gerar gráfico de barra;
 Gerar gráfico de pizza;
 Gerar percentual dos exercícios resolvidos;
 Gerar relatório dos alunos;

1.3. ORGANIZAÇÃO DO TRABALHO

Além deste capítulo introdutório, este trabalho é composto, de três


outros capítulos, referências bibliográficas conforme detalhamento feito a seguir:

No capítulo 2 – Apresentação da Revisão bibliográfica, des crição dos


métodos utilizados e as ferramentas que ajudaram na implementação e implantação do
sistema.
No capítulo 3 – Apresentação da parte de analise TCCI: Descrição do
Sistema, Lista de Funções, Diagrama de Casos de Uso, Descrição de Casos de uso,
Diagramas de Classe, Seqüência, Atividade, Estado e DER.
No capítulo 4 – Apresentação Projeto do TCC II: Diagrama de Casos
de Uso, Descrição de Casos de uso, Diagramas Classe, Seqüência, Atividade, Estado,
ER, Mapeamento Objeto Relacional (MOR), Projeto do Banc o de Dados e Projeto de
Interface.
5

2. REVISÃO BIBLIOGRÁFICA

2.1. METODOLOGIA

As ferramentas de suporte ao desenvolvimento que optamos em utilizar


foram as de maior difusão no meio acadêmico e as gratuitas.
Os requisitos foram levantados através de en trevistas e pesquisas, para
tanto, vale observar que nesta validação foram feitos protótipos dos dados através dos
conceitos da UML (linguagem de modelagem unificada) a fim de elevar o nível de
abstração e de facilitar o entendimento.
Para modelagem dos da dos foi utilizada a ferramenta case Jude
Community 3.0 que suporta os conceitos da UML.
Quanto à ferramenta de desenvolvimento optamos por utilizar a
linguagem Java Web e Java TV. Java Web será para desenvolver a página Web
juntamente com a tecnologia Servlet, JSP e JSTL que são à base de aplicativo Web e o
framework Struts para controlar o fluxo navegacional da página e o servidor de Web
Apache Tomcat. O JDBC foi usado para ter acesso ao banco de dados.
Java TV, utilizado para desenvolver sistema para TV D igital, é uma
plataforma Java especifica para produção de conteúdo da TV interativa, pois é uma
plataforma de desenvolvimento de aplicações para TV digital flexível e em constante
atualização. Essa plataforma pode ser utilizada nos três grandes padrões exi stentes,
6

com pequenas modificações no código escrito. Para criação de gráficos,


usaremos o software GIMP, e para edição de áudio, Audacity, ambos gratuitos. Para
emular o set-up box, será utilizado o XleTView.
A interface, que será desenvolvida neste proje to apresentará na tela de
uma TV com o sistema digital, um aplicativo que gerenciará as opções de
interatividade disponíveis ao telespectador, utilizando o middleware Ginga-NCL,
brasileiro e gratuito.
Quanto à modelagem de dados em nível conceitual foi uti lizado para
modelagem do modelo ER - Entidade Relacionamento para criação das tabelas no
banco de dados foi a ferramenta brModelo, que tem como motivação recursos que dão
ao usuário um alto nível de abstração na criação das tabelas que comporão o banco de
dados.
Na camada de persistência dos dados será utilizado como SGBD
(sistema de gerenciamento de banco de dados) o MySql 5.0 por se tratar de um dos
SGBD`s explorados em sala de aula como recurso didático nas aulas práticas de
programação em banco de dados , o que nos facilitou pela interatividade e
conhecimento da sintaxe já adquiridos com a ferramenta.
Atualmente o modelo preferido para persistir dados em aplicações é o
banco de dados relacional. DAO ( Data Access Object) é um padrão para persistência
de dados que permite separar regras de negócio das regras de acesso a banco de
dados. Numa aplicação que utilize a arquitetura MVC, todas as funcionalidades de
bancos de dados, tais como obter as conexões, mapear objetos Java para tipos de
dados SQL ou executar comandos SQL, devem ser feitas por classes de DAO.

2.1.1. Ciclo de Vida

O termo modelo do ciclo de vida é utilizado para descrever um modelo


que visa descrever um grupo de atividades e a forma como elas se relacionam. Os
modelos mais sofisticados incluem aind a uma descrição de quando e como se deve
mover de uma atividade para a próxima e os deleverables que devem ser produzidos
em cada etapa.
A razão pela qual estes modelos são tão conhecidos é o fato ajudarem
as equipes de desenvolvimento, e em particular os gestores, a obter uma visão geral
7

do projeto de forma a ser possível segui -lo passo a passo, saber que deleverables
foram especificados, o alocamento de recursos e os objetivos propostos. Estes
"modelos de ciclo de vida" ou "modelos de processos" são tipi camente produzidos a
partir de uma perspectiva de que poderão existir vários modelos para o mesmo
processo. Nenhum modelo é capaz de dar uma visão completa de um determinado
processo. [WIK].

2.1.1.1. Modelo Cascata

O modelo em cascata é um modelo de d esenvolvimento de software


seqüencial no qual o desenvolvimento é visto como um fluir constante para frente
(como uma cascata) através das fases de análise de requisitos, projeto,
implementação, teste, integração e manutenção de software.
Este modelo consiste basicamente em um modelo linear em que cada
passo deve ser completado antes que o próximo passo possa ser iniciado. Uma das
grandes falhas deste modelo é o fato de os requisitos estarem constantemente a mudar
já que os negócios e ambiente em que se ins erem mudam rapidamente. Isto significa
que não faz sentido parar os requisitos durante muito tempo, enquanto o desenho e
implementação do sistema são completados. Foi então reconhecido que seria
necessário dar feedback às atividades iniciais a partir do mo mento em que este modelo
começou a ser usado em grande escala. A idéia de interação não foi incorporada na
filosofia do modelo de cascata. Neste momento, é incluído algum nível de interação
na maior parte das versões deste modelo e são comuns sessões de re visão entre os
elementos responsáveis pelo desenvolvimento do sistema. No entanto, a possibilidade
de revisão e avaliação com os utilizadores do sistema não está contemplada neste
modelo. [WIK]
8

2.1.2. UML (Unified Modelin Laguage)

A UML é uma linguagem gráfic a que indica as formas que podem ser
utilizadas para representar um software em diversos estágios de desenvolvimento. Sua
finalidade é proporcionar um padrão para a preparação de planos de arquitetura de
projetos de sistemas, incluindo aspectos conceituais , como processo de negócios e
funções do sistema, além de itens concretos, como classes escritas em determinadas
linguagem de programação, esquema de banco de dados e componentes de software
reutilizáveis.
Na UML, podem ser encontrados diversos tipos de di agramas
utilizados para a simplificação da descrição do sistema a ser desenvolvido, como por
exemplo: diagrama de caso de uso referente à visão do sistema, ou seja, o relato
resumido dos principais tópicos que o negócio a ser automatizado deve fornecer. Os
Casos de uso são, talvez, o único instrumento que acompanha um software do seu
inicio até a sua conclusão. [MAD04].

2.1.2.1 Modelagem

2.1.2.1.1 Diagrama de Caso de Uso

Para entendermos o conceito de Caso de uso precisamos conhecer o de


Ator. O Ator pode ser uma pessoa, um sistema, o Ator pode ser até algo como um
roteador, que realiza uma atividade e sempre atua sobre um Caso de Uso. O diagrama
de Caso de uso é baseado no documento Visão que é o relatório resumido com os
principais tópicos que o negó cio a ser automatizado deve fornecer.
9

Figura 1- Notação do diagrama de Caso de Uso na UML. [MED04]

2.1.2.1.2 Diagrama de Classe

A criação de um objeto, baseado em uma classe, recebe um nome


especial: instancia. Quando instan ciamos objetos de uma classe, criamos esses objetos
na memória. Os atributos são as características que uma classe tem. Entre parênteses,
temos o que chamamos de argumento ou parâmetro. Uma classe sempre deve versar
sobre um mesmo assunto, uma classe encap sula um dado conhecimento sobre algo.
A notação para a visibilidade do atributo privado ( private) é uma sinal
se subtração (-), é o mais comum na orientação dos objetos. A semântica informa que
apenas a classe em que ele está declarado pode acessá -lo. O atributo protegido
(protected) é o sinal cerquilha (#), a semântica informa que o atributo somente é
acessível por meio de classe que estejam participando de sua estrutura de herança. E o
atributo pacote (package) é o sinal de til (~), o atributo desse tipo somente é acessível
por meio de classe que estejam no mesmo pacote onde a classe que o declaro está.
10

Figura 2 - Notação do diagrama de classes. [MED04]

2.1.2.1.3 Diagrama de Seqüência

O diagrama de seqüência é considerado um dos diagramas de


interação. Ele pode ser usado para mostrar a evolução de uma situação em
determinado momento do software, mostrar uma dada colaboração entre duas ou mais
classes e pode, também, ser usado para mostrar a tradução de um Caso de uso desde a
interação com o usuário ate a finalização daquele dado processo.
11

Figura 3 - Notação do diagrama de seqüência [MED04]

2.1.2.1.4 Diagrama de Atividades

Existem diversos diagramas da UML que descrevem os aspectos


dinâmicos de um sistema. Um desses diagramas, os diagramas de estados, des crevem
como um sistema responde a eventos de uma maneira que é dependente do seu estado.
Outros dois diagramas relativos a aspectos dinâmicos são os de seqüência e de
comunicação. Outro diagrama ne ssa categoria é o diagrama de atividade.
Um diagrama de atividade é um tipo especial de diagrama de estados,
em que são representados os estados de uma atividade, em vez dos estados de um
objeto. Ao contrário dos diagramas de estados, que são orientados a eventos, diagra-
mas de atividade são orientados a fluxos de controle.
12

Figura 4 - Notação do diagrama de Atividades. [MED04]

2.1.2.2 Diagrama de Estados

Quando tivermos uma classe com um ou mais atributos, que reflitam o


estado de seus objetos um determinado tempo, e que esses atributos merecem ser
modelados visando simplificar sua complexidade, podemos criar o diagrama de
estado. Um atributo de uma classe será um atributo de instancia, e, portanto de um
objeto, como também um atributo estático de uma classe.

Figura 5 - Notação do diagrama de Estados. [MED04]


13

2.1.3. Banco

2.1.3.1 MySQL

O MySQL é um sistema Gerenciador de Bancos de Dados Relacional


OpenSource, ou seja, tem o código fonte aberto e é o ger enciador de código aberto
mais utilizado do mundo, por meio da licença GNU ( General Public License –
Licença Pública Geral). Suas grandes vantagens são a facilidade de uso e o fato de ter
licença gratuita, porém há possibilidade de se adquirir uma senha co mercial.
A linguagem SQL do MySQL é o padrão SQL92 (DDL, DML e DCL)
e suporta diversas páginas de código de caracteres, com as que contêm caracteres
acentuados, por exemplo, na língua portuguesa. A partir da versão 5.x, o MySQL se
torna um gerenciador de B ancos de Dados Cliente/Servidor Completo, pois, depois da
implantação do suporte a transações implantado na versão 4.0, na versão 5.0 estão
sendo implantados os recursos necessários de Stored Procedures, Cursores, Views,
Triggers, Foreing Keys e Constraint s. [RAN04].

2.1.4. Arquitetura

2.1.4.1 DAO (Data Access Object)

Quando o armazenamento está sujeito a mudar de uma implementação


para outra, o DAO pode ser implementado usando o padrão Abstract Factory. O
Abstract factory pode prover um objeto DAO factory abstrato (Abstract Factory) que
pode construir vários tipos de DAO factories concretos, cada um suportando um tipo
de armazenamento diferente de persistência. Uma vez que se obteve o DAO factory
concreto para uma implementação específica, este pode ser usado para produzir
DAOs correspondentes a esta implementação.
O problema ao implementar um software é que os componentes
precisam obter e salvar informações de armazenamentos persistentes e outras fontes
de dados como sistemas legados, B2B, e as API’s de armazenamentos persistentes
dependem do fornecedor. Outras fontes de dados têm API’s despadronizadas ou
14

proprietárias. Estas API’s e suas capacidades também variam dependendo do tipo de


armazenamento (RDBMS, OODBMS, XML, arquivo, etc. Há falta de uma API’s
padronizada para endereçar os pedidos a tantos sistemas diferentes. A Portabilidade
dos componentes é diretamente afetada quando mecanismos de acesso específicos e
API’s são incluídos no componente e os Componentes por sua vez precisam ser
transparentes ao armazenamento persistente atual ou implementação da fonte de
dados para prover migração fácil entre diferentes fornecedores de produtos, tipos de
armazenamento e diferentes tipos de fontes de dados
A solução para resolver estes problemas é u sar um Data Access Object
(DAO) para abstrair e encapsular todo o acesso a fonte de dados. O DAO gerencia a
conexão com a fonte de dados para obter e armazenar dados.

2.1.4.2 Padrão MVC (Modelo Visão Controle)

O padrão MVC (Model View Controller) é um padrão de arquitetura de


software divido em três camadas físicas. A camada de Aplicação ( Model), o coração
da aplicação, está preocupada apenas com o armazenamento, manipulação e geração
de dados. A camada de Visualização ( View) não está preocupada de onde a
informação foi obtida ou onde ela foi obtida, mas apenas em exibe a informação e a
camada de Controle (Controller) determina o fluxo da apresentação servindo como
uma camada intermediária entre a camada de aplicação e a lógica, onde é responsável
por controlar e mapear as ações.
Uma das vantagens do padrão MVC é que lê e gerencia múltiplos
visualizadores usando o mesmo modelo, ou seja, o padrão MVC testa e atualiza
sistemas múltiplos. Mas como desvantagem o modelo MVC necessita de maior tempo
para analisar e modelar os sist emas.
A arquitetura MVC fornece uma maneira de analisar a funcionalidade
envolvida na manutenção e apresentação dos dados da aplicação. Essa arquitetura foi
desenvolvida para mapear as tarefas de entrada, processamento e saída para o modelo
de interação com o usuário. [GAM00].
15

Figura 6 - Modelo MVC [MAC].

2.1.4.3 Padrão Façade (Fachada)

A intenção é fornecer uma interface unificada para cada conjunto de


interfaces em um sistema. Façade define uma interface de nível mais alto que torna o
subsistema mais fácil de ser usado.
A motivação é estruturar um sistema em subsistema de ajuda a reduzir
a complexidade. Um objetivo comum de todos os projetos é minimizar a comunicação
e as dependências entre subsistemas. Uma maneira de atingi r esse objetivo é
introduzir um objeto façade (fachada), o qual fornece uma interface única e
simplificada para recursos e facilidades mais gerais de um subsistema. [GAM00].
16

2.1.5. Tecnologias

2.1.5.1 Software Embarcado

Nos softwares embarcados são utilizado s microprocessadores e


sistemas operacionais específicos. Diferente do computador pessoal que possuem
finalidade geral, no software embarcado o computador é encapsulado ao sistema que
ele controla. Um sistema embarcado realiza um conjunto de tarefas predef inidas,
geralmente com requisitos específicos, além de implementar conceitos de
programação em tempo real e na maioria dos casos necessita de segurança e
confiabilidade bem acima das exigidas pelos sistemas comerciais.[TAU05].
Com o avanço tecnológico, cad a vez mais estão utilizando sistema
embarcado, sistemas estes que cada sua vez tornam -se sofisticados e complexos. A
potencialidade de uso da tecnologia embarcada é apenas limitada pela criatividade e
imaginação, a acelerada da evolução dos sistemas abre u m novo caminho econômico.
Em nossas atividades do dia a dia podemos identificar a presença de software
embarcado. Embora a grande maioria passe despercebida por nós, alguns exemplos
mais comuns encontrados são nos celulares, em elevadores e nas catracas el etrônicas.
[TAU05]
Desenvolver sistema embarcado é um desafio, diferentes dos
enfrentados por desenvolvedores com experiência em típicas aplicações comerciais. A
indústria de software apresenta um desempenho no desenvolvimento do país, visto
que é um dos últimos comércios de alto valor agregado que está em desenvolvimento.

2.1.5.2 Java TV

Java TV é uma extensão da plataforma Java especialmente desenhada


para produção de conteúdo para a TV interativa. Java TV consiste de uma máquina
virtual Java (JVM – Java Virtual Machine) e de várias bibliotecas de códigos
reusáveis e específicos para a televisão digital interativa. Com Java TV é possível
desenvolver aplicações no set-top-box que sejam associadas a determinados
programas de televisão, bem como aplicaçõ es isoladas, que podem executar de forma
independente, sem estar associada a algum programa de televisão. [TAU05]
17

No nível mais alto da pilha temos aplicações que fazem uso de Java TV
e das bibliotecas da plataforma Java, que geralmente será a J2ME devido ao pouco
recurso de memória disponível num set-top-box. Logo abaixo temos o sistema
operacional que dá o suporte necessário a implementação da máquina virtual Java
(JVM). Na camada de hardware, temos um receptor de televisão digital que suporta
broadcast e pipeline de dados. A API Java provê uma abstração em relação à camada
de hardware, fazendo com que os desenvolvedores de aplicações não se preocupem
com o ambiente desta camada.
A figura abaixo mostra uma pilha de software para um receptor de
televisão digital.

Figura 7 - Pilha de Software para receptor de TV Digital . [GRA]

2.1.5.3 Servlets

A tecnologia Servlet é à base do desenvolvimento de aplicativo web


usando a linguagem de programação Java. Um Servlet é uma classe Java que pode ser
automaticamente carregada e executada por um servidor especial. Esse servidor web
cliente de Servlet é chamado de um contentor servlet.
Um servlet é carregado pelo contentor servlet na primeira vez que o
servlet é solicitado. Então, a ele é e ncaminhada a solicitação do usuário, ele a
responde e retorna a resposta ao contentor servlet que, por sua vez, envia a resposta de
volta ao usuário. Depois disso, o servlet permanece na memória aguardando outras
solicitações, ele não é carregado na memóri a, a menos que o contentor de servlet veja
18

uma diminuição de memória. No entanto, cada vez que o servidor é solicitado, o


contentor de servlet compara o carimbo de horário do servlet carregado com o arquivo
de classes servlet. Se o carimbo de horário de ar quivo de classe for mais recente, o
servlet é carregado na memória. Dessa maneira, não é preciso reiniciar o contentor
servlet sempre que atualizar o seu servlet. [KUR 02].

Figura 8 - Funcionamento Servlet [DSC]

2.1.5.4 JSP (JavaServer Pages)

Java Server Pages é uma tecnologia Java para desenvolver aplicativos


web. JSP é uma extensão da tecnologia servlet, e é prático comum usar ambas, servlet
e páginas JSP nos mesmos aplicativos web. JSP trabalha com solicitações HTTP e
respostas HTTP, parâmetros de solicitação, atributos de solicitação, gerenciamento de
sessão, cookies, reescrita de URL e assim por diante. A vantagem da portabilidade de
plataforma podendo ser executado em outros Sistemas Operacionais além dos da
Microsoft. Ela permite que ao desenvolvedor de sites produza aplicações que
permitam o acesso a banco de dados, o acesso a arquivos -texto, a captação de
informações a partir de formulários, a captação de informações sobre o visitante e
sobre o servidor, o uso de variáv eis e loops entre outras coisas.
19

Quem conhece servlets verá que o JSP não oferece nada que você não
possa conseguir com os servlets puros. O JSP, entretanto, oferece a vantagem de ser
facilmente codificado, facilitando assim a elaboração e manutenção de um a aplicação.
Além disso, essa tecnologia permite separar a programação lógica (parte dinâmica) da
programação visual (parte estática), facilitando o desenvolvimento de aplicações mais
robustas, onde programador e designer podem trabalhar no mesmo projeto, mas de
forma independente. Outra característica do JSP é produzir conteúdos dinâmicos que
possam ser reutilizados. [KUR02]
Quando uma página JSP é requisitada pelo cliente através de um
Browser existe um servlet especial page compiler. O contentor de Servlet é
configurado para encaminhar, a esse compilador de páginas as solicitações HTTP com
URLs que combinam a extensão de arquivo .jsp. Esse compilador de página
transforma um contentor servlet em um contentor JSP. Quando a página .jsp é
chamada inicialmente, o compilador de página analisa e compila a pagina .jsp em uma
classe servlet. Se o compilador é bem sucedido, a classe servlet jsp é carregada na
memória. Em chamadas subseqüentes, a classe servlet daquela página .jsp já está na
memória; entretanto, ela deve estar atualizada. Portando, o compilador de paginas
servlet sempre comparará o caminho de horário no servlet jsp com a página jsp. Se a
página .jsp for mais atual, é necessária a recopilação. Com esse processo, uma vez
distribuídas, as páginas JSP só percorrem o processo de compilação que demanda
tempo, uma vez. [KUR02]. A figura abaixo ilustra esse funcionamento:

Figura 9 - Funcionamento JSP [HEN]


20

Antes de executar qualquer aplicativo JSP é necessário configurar


Tomcat, para que ele reconheça o seu aplicativo JSP.

2.1.5.5 JSTL (JavaServer Pages Tag Library)

A idéia central dessa tecnologia consiste que ela funcione como uma
extensão da tecnologia JSP, oferecendo ao desenvolvedor, tags que trazem formas
mais simples e produtivas, de implementar funcionalidades cruciais de seu código,
como por exemplo: laços, estruturas de decisão, conexão a banco dados, execução de
query’s SQL, etc.
Outro recurso muito importante, introduzido pela JSTL, é a EL, ou
seja, Expression Language (Linguagem de Expressão), que é uma forma mais simples
de acessar e manipular objetos, sua sintaxe, é composta por um “cifrão”, seguido por
um par de chaves, contendo o nome do objeto, por exemplo: ${objeto.nomeAtributo}.
A biblioteca do JSTL está distr ibuída em 5 (cinco) pacotes, agrupados
por funcionalidade, veja a tabela 01 contendo a descrição de cada um.

Figura 10 - Pacote JSTL [ANT]

Esses pacotes, estão definidos em arquivos TLD’s (Tag Library


Descriptor) que estão disponíveis em 2 (dois) arquivos JAR’s, o JSTL1.1 standard.jar
e o JSTL1.1-jstl.jar , necessários ao uso do JSTL dentro de sua aplicação, portanto,
devem ser adicionados ao class-path de sua aplicação(uma dica, no caso específico do
NetBeans, basta clicar com o botão direito do mouse sobre o nó Libraries, escolha a
21

opção add Library, procure e escolha a biblioteca JSTL X.X , em seguida conclua
clicando em add Library).

2.1.5.6 Struts

Struts é um framework do grupo Jakarta que serve como o controller


de uma arquitetura MVC. Apesar de ter suporte para qualquer tipo de Servlets, é
focado no uso de HttpServlets. Os desenvolvedores que trabalham em aplicações
eletrônicas convencionais estão acostumados a kits de ferramentas e a ambientes de
desenvolvimento que aproveitam a igualdade entre as aplicações. Os frameworks da
aplicação fornecem uma base comum reutilizável podendo servir como fundação para
um produto específico.
Um framework de aplicação deve possuir as seguintes características:
 Compreender múltiplas classes ou componentes, cada qual provendo uma
abstração de um conceito em particular;
 Definir como estes conceitos trabalharão juntos para resolver um determinado
problema;
 Possuir componentes reutilizáveis;
 Permitir um alto nível de padronização.
Principais problemas e soluções
 Facilita a população de beans
 Simplifica o uso de servlets, necessitando apenas a criação de classes Action
 Com suas tags dispensa o uso de scriptlets em 98% dos casos.
Componentes
 ActionForm
 ActionForward
 ActionMapping
 ActionServlet
 DynaActionForm
O projeto e desenvolvimento deste tipo de aplicação levam os desenvolvedores
para o limite da lógica. Soluções espalhafatosas são criadas para resolução de certos
problemas. Algumas destas soluções funcionam, outras não. O framewok Struts
22

fornece um servlet controlador para lidar com o fluxo navegacional e as classes


especiais para ajudar com o acesso dos dados. Uma biblioteca de tags personalizadas
é enviada com o framework para tornar o Struts ainda mais fácil de usar com as
páginas JSP. Pode-se observar que o Struts implementa o pattern MVC, onde as
camadas de Modelo, Visualização e Controle devem ser implementadas
separadamente na aplicação.
Para facilitar o entendimento do Struts, observe na Figura 1.

Figura 11 - Fluxo de uma aplicação Struts [JAV]

As etapas estão descritas a seguir, de acordo com a numeração indicada


na Figura 6:
1. Cada solicitação HTTP tem que ser respondida neste mesmo
protocolo. Desta forma, inicia -se uma aplicação que utiliza o Struts. Esta solicitação
normalmente é definida como requisição do, que é um nome lógico para a requisição
do usuário.
2. A solicitação requisição do é mapeada no arquivo struts-config.xml.
Neste arquivo estão todas as definições do controlador do framewor k. O arquivo é
então lido por um ActionServlet (que fará efetivamente o papel do controlador da
aplicação) na inicialização da aplicação criando então um banco de objetos com o
arquivo de configuração. No arquivo de configuração são definidos os Actions
(requisições dos usuários) para cada solicitação.
3. O ActionServlet (que faz o papel do controlador da aplicação), define
o Action correspondente para a solicitação. Um Action pode validar a entrada de
23

dados e acessar a camada de negócios para recuperar as informações nos bancos de


dados e outros serviços de dados.
4. A requisição HTTP pode ser feita também através de um formulário
HTML. Em vez de fazer com que cada Action retire os valores do campo da
solicitação, o ActionServlet coloca a entrada em um JavaBean. Estes JavaBeans são
definidos como FormBeans no Struts e estendem a classe
org.apache.struts.action.ActionForm (os Actions e FormBeans serão abordados com
maiores detalhes no decorrer do artigo).
5. O Action pode acessar o FormBean, efetuar qualquer operação e
armazenar o resultado em um ResultBean.
6. O Action interage com a camada de negócio onde uma base de dados
poderá ser atualizada.
Ao completar a lógica de negócio, o Action selecionará e retornará um
ActionForward para o servlet. Então, o servlet usará o caminho armazenado no objeto
ActionForward para chamar a página e completar a resposta.
Estes detalhes logísticos da aplicação são definidos no objeto
ActionMapping. Cada ActionMapping está relacionado a um caminho específico.
Quando este caminho for selecionado, o servlet irá recuperar o objeto ActionMapping.
O mapeamento informará ao servlet quais Actions, ActionForms e ActionForwards
usar.

2.1.5.7 JDBC (Java Database Connectivity)

O acesso a banco de dados e a programação tem função importante em


desenvolvimento de web. O Java Database Connectivity (JDBC) é o padrão da
indústria para o banco de dados independente de conectividade entre a linguagem de
programação Java e uma vasta gama de bases de dados - bases de dados SQL e outras
fontes de dados tabulares, tais como planilhas ou arquivos. A finalidade do JDBC é
permitir o acesso e manipulação a banco de dados. [KUR02].
24

2.1.5.8 Apache Tomcat

Apache Tomcat é uma implementação da tecnologia Java Servlet e


Java Server Pages (JSP).
O Tomcat é um servidor web, ou seja, o Tomcat pode ser utilizado para
solicitar serviços HTTP em servlets, assim como arquivos estáticos. Normalmente o
Tomcat é usado como módulo, com outro servidor web robusto, como o servidor web
Apache. Apenas as solicitações para servlets ou páginas JSP são passadas para o
Tomcat. [KUR02].

2.1.5.9 Set-Top Boxes

Existe uma grande variedade de set-top boxes, cada qual com seu
conjunto de funcionalidades. Esses equipamentos podem ser divididos primeiramente
em três categorias de acordo com o tipo de conexão com o meio de difusão televisivo
[FCC]:
 Enhanced Broadcast Receivers: Além da tradicional exibição de um
canal televisivo, são capazes de lidar com gráficos, imagens e textos
transmitidos junto com a difusão do sinal, os quais podem ser controlados por
aplicações também transmitidas com o sinal. Não possui um canal de retorno,
assim suporta apenas a interatividade local.
 Interactive Broadcast Receivers: Além das capacidades do Enhanced
Broadcast Receiver, possui um canal de retorno com o servidor,
possibilitando assim serviços interativos.
 Multi-Network Receveirs: Além das capacidades do Interactive Broadcast
Receiver, possui acesso a mais de uma rede de difusão e um canal de
retorno. Assim, possibilita a utilização de outros serviços de comunicação,
como por exemplo, telefonia local e Internet.

As principais funcionalidades de um set -top box são [DTV]:


 Sintonização, demodularização, demultiplexação e decodificação do sinal
recebido;
25

 Verificação dos direitos de acesso e níveis de segurança;


 Saída de vídeo com qualidade de cinema ao televisor;
 Saída de som com qualidade Estéreo, Surround ou Dolby Digital;
 Processar e verificar os serviços de Televisão Interativa.

Figura 12 - Arquitetura de um set-top box genérico utilizando tecnologia Java [UNI]

2.1.5.10 Xlets

Uma Xlet em um ambiente de televisão interativa equivale a um applet


Java em um browser para PC. Assim como o applet, que é carregado pelo browser
através da Internet quando o usuário acessa determinado endereço, o Xlet é difundido
em uma seqüência de transporte MPEG -2 e carregado pelo set-top box quando o
telespectador seleciona determinado serviço (ou canal).
Assim como uma applet, uma Xlet possui uma interface que permite
que uma fonte externa, no caso o gerenciador de aplicação do set-top box, inicie-a,
pare-a, ou a controle de várias outras formas [MHP]. A maior diferença entre uma
applet e uma Xlet é que a segunda pode também ser paralisada e depois ter sua
execução continuada. Essa diferença em relação a uma applet se deve ao fato de que,
em um ambiente de televisão interativa, várias Xlets podem estar sendo executadas
simultaneamente, e diferentemente de um PC, um set-top box possuí recursos de
26

hardware muito mais escassos. Como em uma televisão digital, provavelmente apenas
uma Xlet estará visível em determinado instante, dessa forma, paralisando uma Xlet
que se torna invisível, poupa -se valiosos recursos de hardware, tornando possível a
execução e exibição de outras aplicações. Posteriormente, a Xlet paralisada pode
retornar a execução.

Figura 13 - Estados possíveis de uma Xlet [UNI]

Quando o telespectador escolhe iniciar determinado serviço que


contém a Xlet, ou quando outra aplicação determina que a mesma deve ser iniciada
automaticamente, o gerenciador de aplicação invoca o método de inicialização da
Xlet, passando, para a mesma, um objeto contendo o contexto no qual ela se encontra.
A Xlet usa esse objeto para sua inicialização e para pré -carregar todos os recursos
(como imagens, por exemplo) da seqüência de transporte da qual fará uso. Após isso,
a Xlet entra no estado ‘paralisada’, no qual está pronta para ser iniciada
imediatamente.
Quando a Xlet retornar do método de inicialização, o gerenciador de
aplicação chama outro método para iniciar a mesma. A Xlet passa então ao estado
‘iniciada’, no qual estará apta para interagir com o telespectador. Nesse ponto, o
gerenciador de aplicação pode determinar que a Xlet deve ser paralisada, retornando
ao estado anterior. Em qualquer ponto desse pode voltar a ser executada novamente
retornando ao estado ‘iniciada’. Em qualquer um dos estados que a Xlet se encontra, o
gerenciador pode também escolher destruí -la, liberando assim todos os recursos que a
mesma ocupa. Uma vez destruída, a mesma instancia da Xlet não pode voltar a
nenhum dos estados já citados.
27

2.1.5.11 Xle TView

Emulador que pode ser usado para executar Xlets em um PC é o


XleTView [XleT]. Possui o código aberto sob a licença GPL, e além de uma
implementação de referência da API JavaTV, traz consigo implementações de outras
APIs especificadas no padrão MHP, como a Havi (Home Audio- Video
interoperability) [HAV], DAVIC (Digital Audio-Video Council) [DAV] e
implementações especificadas pela própria DVB[Digital Vídeo], além das bibliotecas
do PersonalJava que o mesmo padrão faz uso.
Como é programado totalmente em Java, pode ser executado tanto em
uma plataforma Linux ou Windows, bastando para isso utilizar o Java 2 Standard
Development Kit para compilar Xlets e executar o XleTView. Esse emulador utiliza o
JMF 2.1.1, porém com várias deficiências, como a incapacidade de exibir vídeo
MPEG relacionado ou controlado por uma Xlet.
Uma das grandes vantagens do XleTView sobre a solução da Sun é que
a mesma busca suprir todo o conjunto de APIs especificadas pelo padrão MHP,
enquanto a implementação de referência fornecida pela Sun é puramente uma
implementação da API JavaTV. Assim, o XleTView aumenta o leque de possibilidades
ao desenvolvedor de Xlets. Isso faz desse emulador um dos mais citados e
recomendados em diversos fóruns na Internet [SUN].

2.1.5.12 TV Digital

A TV Digital apresenta uma transmissão sem interferências,


proporcionando uma qualidade de som e imagem muito superior a analógica. Permite
também um número muito maior de canais e o próprio formato do aparelho receptor é
diferente, com a tela sendo horizontal mais próxima das telas de cinema. As telas dos
aparelhos analógicos são mais quadradas.
O domínio tecnológico da TV Digital compreende não apenas seus
componentes básicos, como semicondutores, mas principalmente a tecnologia de
28

software. A TV Digital é principalmente software. A transição para a TV Digital será


extremamente custosa e não será em pouco tempo. [TAU05].
Não deverá confundir-se TV Digital com TV de alta definição, a TV
Digital é a combinação da televisão e das tecnologias da internet, pois a TV Digital
permitirá ter acesso a Web, shopping on-line, com essa tecnologia a digitalização da
transmissão de canais derrubará as barrei ras existentes entre TV e Internet.
Para [TAU05], no contexto de televisão digital, o modelo de software
livre e o Linux, por excelência, tem um papel de extrema importância. Os sistemas
operacionais são o cerne dos set-top-box, pois em cima deles é que se rão construídas
as funcionalidades dos aplicativos. Televisão digital é antes de tudo software e abre
um mercado bastante atraente para a indústria de software brasileira. A produção de
software começou como apêndice da indústria de computadores, é hoje um setor
extremamente dinâmico que apresenta crescente especialização.

2.1.5.12.1 Interface

No mundo das mídias digitais, o usuário se relaciona com interfaces. A


tecnologia deve ser transparente ao usuário, ou seja, o usuário adquire o serviço que
esta mídia está oferecendo e não o aparelho em si. De uma forma geral, o usuário não
consegue dizer quais características específicas de software específico. “A tecnologia
estimula a inteligência dos indivíduos na forma especial como aparece representada
ao usuário através das interfaces” [GAR85, p. 45] que devem ter seu uso seja de
forma intuitiva, simples, fácil e sem a requisição de treinamento.
A interface torna-se um dos elementos mais importantes no
desenvolvimento de um novo serviço ou novo produto. A in terface, segundo [JOH97,
p.71] “é a fina pele que separa o homem da mídia, constituindo -se ela um meio, por si
só”. A interface assume este papel de “pele” entre a mídia virtual e o usuário.
A interface deve ser fácil de ser usada, mostrando claramente as
alternativas disponíveis a cada passo sem deixar o usuário inseguro ou confuso; ele
deve ser capaz de se fixar somente no problema que deseja resolver. “As interfaces
trazem inscritas em si metáforas para a definição e estabelecimento das associações
entre o mundo real e viagem ao mundo imaginário” [GOS 03, p.71]. O usuário
29

incorpora a interface e passa a realizar as tarefas intuitivamente, como apertar botões


e escolher menus.
Já [GAW03, p.95-96] categoriza bons serviços digitais interativos
como sendo aqueles que apresentam as interfaces mais atraentes para os usuários,
como segue:

 Grande número de usuários – boa geração de receita; Alinhamento com


comportamento de uso e consumo;
 Proposição de valor e encontro às necessidades dos usuários bem
claros; Boa campanha de marketing;
 Flexibilidade dos usuários para aceder ou não aos serviços;
 Uso de outras mídias como parte do pacote – internet, celular;

2.1.5.12.2 Fontes

Tiresias – fonte criada especialmente para a TV. É fonte padrão nas


caixas do sistema MHP. Também é a fonte recomendada para maior acessibilidade em
indivíduos com necessidades especiais, especialmente fonte tamanho 32. Recomenda -
se também o uso de fontes sem serifa, como Helvetica, Futura e Univers. Outras
fontes devem ser utilizadas para d ar personalidade e características próprias à
interface, desde que respeitadas às limitações técnicas e de legibilidade do meio. Os
pesos Medium e Bold são os mais adequados para a televisão. As fontes condensadas
permitem um aproveitamento maior do espaço , mas devem ser utilizadas com
cuidado, pois algumas podem ter a legibilidade comprometida se o espaço interno dos
caracteres não permitir o anti-aliasing. O espaçamento entre letras ( kerning) deve ser
aumentado para evitar que as letras se juntem devido a o anti-aliasing e o flicker
(vibração) das linhas do monitor; utilizando -se fontes grandes reduzem -se os efeitos
de vibração aos olhos. Tamanho 18 como padrão; 16 são o menor a ser usado.
Minimizar a variação de fontes por limitação da caixa para obter um bom design.
30

2.1.5.12.3 Legibilidade

A experiência relatada no BBCi HANDOBOOK (2002)[BBC 02]


revela que o tamanho de fonte para texto corrido não deve ser menor que 24 pt. Texto
claro num fundo escuro é mais fácil de ser lido na tela e o texto na tela requer
espaçamento entre linhas maior do que o impresso. De acordo com estudiosos da área
de desenho industrial voltado para programação visual, não é recomendado utilizar
mais do que dois tipos de fontes em uma tela.

2.1.5.12.4 Áudio

Deixar o áudio da programação da TV sempre presente. Sons podem e


devem ser utilizados para dar retorno ao usuário após pressionar uma tecla ou
selecionar um item de menu.

2.1.5.12.5 Setas

As setas só são utilizadas em aplicativos interativos, portanto não são


confundidas com outros recursos da TV. Em geral, recomenda -se usar ícones
triangulares para representar os botões de seta e indicar a direção. Itens não
selecionados devem ser representados de maneira uniforme, distinguindo -se do que
estiver selecionado. É rec omendado o uso de menus verticais para seleções de texto:
há mais espaço para texto em barras horizontais e os botões de seta para cima e para
baixo têm funções óbvias. Os menus "circulares" devem permitir que se pule para o
início ou fim do menu, conforme o usuário estiver no começo ou fim da seleção.
Deve-se evitar organizar itens de menu em diagonal ou curvas que possam confundir
as expectativas sobre o movimento do highlight quando se pressiona uma seta.
31

2.1.5.12.6 Figuras

Para aperfeiçoar o tamanho das imagens utilizadas na interface,


utilizam-se formatos compatíveis com o sistema ( jpeg, tif, etc.). É recomendável
utilizar a paleta de cores para TV ao invés da web, para evitar banding (cores
borradas). Por isso, não se recomenda o formato gif com a paleta de 256 cores.
Formas geométricas podem ser descritas em formatos vetoriais ou por coordenadas
definidas pela linguagem de programação utilizada pelo sistema.
32

3. ANÁLISE

3.1. Descrição do Sistema

O Sistema de Ensino da Matemática via TV Digi tal visa passar ao


aluno, de forma interativa, conhecimentos matemáticos. Através do sistema WEB, o
administrador será responsável por manter dados do usuário, assim como dados de
enquete, vídeo-aula, assunto, exercício, programação, desafio, curiosidades e emitir
relatórios, entretanto, não será armazenado qual administrador realizou alterações ou
inclusões no sistema WEB quando estas forem feitas. Através da recepção da
programação televisiva o aluno poderá executar desafio, responder enquete, assistir
vídeo-aula, visualizar programação, praticar exercício, saber algumas curiosidades
sobre a matemática.
A programação contém as informações básicas sobre datas, horários e
tempo de cada vídeo-aulas. Esta programação fornece previamente informações ao
aluno sobre os conteúdos que lhe interessam, permitindo que se programe com
antecedência.
Ao aluno será disponibilizado, para cada assunto, uma sinopse, ou seja,
uma descrição breve de sua narrativa e das principais atividades ou conteúdos
agregados a vídeos-aula. Sua função é contextualizar ao aluno no momento em que
ele assiste à televisão e para o conteúdo interativo.
33

As curiosidades vão mostrar fatos interessantes sobre a matemática e


sobre os assuntos a serem estudados.
As vídeos-aula ficarão à disposição do aluno, mas ele não é obrigado
assisti-las, podendo fazer os exercícios referentes aos assuntos disponíveis para o
nível de conhecimento que ele possui.
Cada exercício é composto de 10 questões que são sorteadas
aleatoriamente pelo sistema. Após ter feito o exercício, o sistema mostrará ao aluno o
total de respostas corretas assim como o seu percentual no exercício. O aluno precisa
ter um percentual mínimo de 60% de acertos na resolução do exercício de cada
assunto. Ele poderá continuar resolvendo mais exerc ícios do assunto sobre o qual já
obteve o grau de satisfação. Assim que o aluno obter um percentual maior que 60% n
os assuntos de seu nível, ele irá avançar para o nível seguinte. Ficarão disponíveis os
assuntos do nível em que o aluno se encontra.
O desafio estará disponível para o aluno, ficando ao seu critério essa
funcionalidade de responder, porém se ele optar em responder, o sistema disponibiliza
ao aluno uma pergunta com nível mais elevado sobre a matemática ou assuntos
matemáticos, e ele possui trê s opções de resposta, sendo apenas uma verdadeira. Se o
aluno acerta o desafio o sistema mostrará uma mensagem parabenizando -o, mas se ele
erra o sistema mostra uma mensagem informando seu erro. Em qualquer situação,
acertando ou errando, o sistema mostra qual era a alternativa correta e qual a forma de
respondê-la. O aluno pode executar quantos desafios desejar, ficando a sua disposição
essa funcionalidade. O sistema também disponibiliza ao aluno o total de tentativas que
o desafio possui, assim como o tot al de acertos que estas tentativas obtiveram, além
da porcentagem que os acertos têm com relação às tentativas.
Uma enquete será disponibilizada a cada mês, ou de acordo com a
necessidade do sistema, o aluno não é obrigado a responder, ficando a sua escolh a. As
enquetes serão de vários assuntos, onde cada enquete será composta por uma pergunta
e três opções de respostas. O aluno poderá responder quantas vezes queira a mesma
enquete, ficando ao seu dispor essa alternativa. Após responder a enquete, aparecerá
um gráfico de barra, mostrando o percentual de cada alternativa e o total de aluno que
responderam a enquete.
34

As funcionalidades disponíveis ao usuário aluno, através da TV,


deverão ser acessadas por um controle remoto bastante simples, o que reduz as opç ões
de acesso, se comparadas as de um teclado de computador.

3.2. Listas de Funções

Nº. Nome da Necessidades Benefícios Tipo


Função
1. Manter Manter dados do usuário pra Armazena dados do aluno. M
Usuário ele ter acesso ao sistema.
2. Manter Cadastrar exercício, para o Armazena dados dos M
Exercício aluno ter interatividade com o exercícios para que o aluno
sistema. possa responder.
3. Manter Manter dados de enquete para Mostra qual está sendo a M
Enquete saber a opinião do aluno. necessidade e opinião do
aluno.
4. Manter Tornar o sistema mais Utiliza a possibilidade de M
Desafios dinâmico, não rotineiro. interatividade a fim de tornar o
sistema dinâmico e
descontraído.
5. Manter Manter usuários informados Propicia ao usuário do sistema M
Programação sobre o dia e horário que os informações sobre o horário
módulos serão apresentados. dos módulos que serão
ministrados
6. Manter Manter vídeos para que o Auxilia o aluno no M
Vídeo-aula aluno possa visualizar as aulas entendimento do assunto
7. Manter Manter dados curiosos sobre a Propicia ao aluno um melhor M
Curiosidades matemática. entendimento sobre a
matemática todo.
8. Resolver Verificar o nível de Ajuda ao aluno verificar como P
Exercício conhecimento do aluno. está o seu aprendizado com os
assuntos vistos.
10. Responder Saber a opinião do aluno Apresenta a opinião dos alunos P
Enquete sobre determinados temas.
11. Executar Verificar o nível de Mostra ao aluno o grau de P
Desafio conhecimento do aluno. conhecimento que ele possui
sobre raciocínio lógico.
14. Assistir Mostrar ao aluno através de Ajudar o aluno na hora de P
Vídeo-aula vídeo o ensinamento dos resolver os exercícios sobre os
assuntos. assuntos assistidos.
13. Visualizar Mostra ao aluno o dia e hora O aluno se programa para R
Programação das vídeos-aulas. aquela vídeos-aula de acordo
com os horários.
Legenda: M - manter P - processamento R – relatório
35

3.3. UC – CASO DE USO

3.3.1. Diagrama de Caso de Uso


36

3.3.2. Descrição e Casos de Uso


3.3.2.1 Caso de Uso Manter Usuário (UC01)

Caso de Uso: Manter Usuário


Objetivo: Manter dados referentes ao usuário
Ator: administrador
Pré-condições: O ator deve ter perfil de administrador.
Pós-condições: Usuário cadastrado.
Fluxo Principal
1. Este caso de uso inicia quando o administrador seleciona a opção Usuá rio
2. O Digital Math - Módulo Web exibe Manter Usuário.
3. O administrador tem a opção de pesquisa por Nome ou por Código.
4. O administrador preenche o campo.
5. O Digital Math - Módulo Web retorna os valores.
6. O Digital Math - Módulo Web exibe Nome, IP e Tipo em br anco.
7. O administrador preenche os campos e SALVA
8. O Digital Math - Módulo Web salva os dados do usuário.
9. Este fluxo se encerra.

Subfluxo Cancelar (SB01) ref. UC01(3,4,5,6,8)


Precondição: Não Aplicável.
Passos:
1. O administrador clica no botão Cancelar
2. O Digital Math - Módulo Web retorna.
3. Este subfluxo se encerra.

Subfluxo Detalhar (SB02) ref. UC01(6)


Precondição: Não Aplicável.
Passos:
1.O administrador clicar no botão Detalhar.
2.O Digital Math - Módulo Web exibe os campos
3.Este subfluxo se encerra.

Subfluxo Excluir (SB03) ref. SB02(2)


Precondição: Não Aplicável.
Passos:
1.O administrador clicar no botão Excluir.
2.O Digital Math - Módulo Web exclui o usuário
3.Este subfluxo se encerra.

3.3.2.2 Caso de Uso de Processamento Praticar Exercício (UC02)

Caso de Uso: Praticar Exercícios


Objetivo: Exercitar o conhecimento do aluno.
Ator: Aluno.
Pré-condições: O aluno selecionou a opção Exercícios na Tela Menu Principal.
Pós-condições: Exercício resolvido.
Fluxo Principal
1. O caso de uso é iniciado quando o alun o seleciona opção Exercícios .
2. O Digital Math verifica o nível em que o aluno está.
3. O Digital Math busca o Assunto referente ao nível do aluno.
4. O aluno seleciona o Assunto.
5. O aluno confirma o Assunto.
6. O Digital Math realiza uma busca aleatória dos exercício s referidos ao assunto.
7. O Digital Math aciona o subfluxo RESOLVER EXERCÍCIO (SF01).
37

8. Este caso de uso se encerra.

Subfluxo Resolver Exercício (SF01) ref. UC02 -6


Precondição: O aluno deverá ter selecionado a opção Praticar Exercício.
Passos:
1. O Digital Math exibe a pergunta referente aquele assunto.
2. O aluno seleciona a alternativa.
3. O aluno confirma a alternativa.
4. O Digital Math armazena a resposta do aluno.
5. O Digital Math avança para pergunta seguinte.
6. Os passos 2 a 5 repetirão enquanto houver exercício a serem resolvidos ou
enquanto o aluno não encerrar a resolução do exercício.
7. O Digital Math aciona o Caso de Uso CORRIGIR EXERCÍCIO (UC03).
8. Este subfluxo se encerra.

Fluxo Alternativo Tutorial (FA01) ref. UC02 -(3,4); FA02-3.


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção TUTORIAL.
2. O Digital Math exibe como utilizar as setas de navegação do controle remoto.
3. O aluno seleciona a opção RETORNA.
4. O Digital Math retorna ao exercício.
5. Este fluxo alternativo se encerra.

Fluxo Alternativo Curiosidad es (FA02) ref. UC02-(3,4)


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona opção CURIOSIDADES.
2. O Digital Math exibe curiosidades.
3. Se o aluno selecionar a opção SAIR.
3.1. 7.1. O Digital Math retorna ao exercicio.
4. Se o aluno selecionar a opção NOVA CURIOSID ADE.
5. O Digital Math exibe uma nova curiosidade.
6. Este fluxo alternativo se encerra.

Fluxo Alternativo Menu Principal (FA02) ref. UC02 -(3,4); FA02-3.


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção MENU PRINCIPAL.
2. O Digital Math retorna ao Menu Principal.
3. Este fluxo alternativo se encerra.

Fluxo Alternativo Encerrar (FA02) ref. SF01 -(3,4)


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção ENCERRAR.
2. O Digital Math encerra a resolução do exercício.
3. Este fluxo alternativo se encerra.

Fluxo Alternativo Novo Exercício (FA03) ref. FA02 -3


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção Novo Exercício .
2. O Digital Math retorna ao Assunto.
3. Este Fluxo Alternativo se encerra.

3.3.2.3 Caso de Uso de Processamento Corrigir Ex ercício (UC03)


38

Caso de Uso: Corrigir Exercícios.


Objetivo: Corrigir os resultados dos exercícios.
Atores: não aplicável
Pré-condições: O caso de uso UC02-Praticar Exercícios deve estar em execução.
Pós-condições:
Fluxo Principal
1. Este caso de uso inicia quando o aluno termina ou encerra os exercícios no (UC02/SF01 -(3,4))
2. O Digital Math compara a quantidade de respostas acertadas com o total de exercícios
resolvidos,
3. O Digital Math calcula o percentual de acertos do exercício resolvido pelo aluno.
4. O Digital Math mostra os resultados.
5. O Digital Math armazena a Porcentagem.
6. Este caso de uso se encerra.

Subfluxo Percentual (SB01) ref. UC03 -4


Precondição: Não Aplicável.
Passos:
1. Se o aluno acertou menos de 60% dos exercícios.
1.1. Se o aluno já havia resolvid o exercícios deste assunto.
1.1.1. 1.1.1.O Digital Math atualiza a porcentagem.
1.2. Se o aluno não havia resolvido exercícios deste assunto.
1.2.1. O Digital Math insere a porcentagem.
2. Se o aluno acertou 60% ou mais dos exercícios .
2.1. Se o aluno já havia resolvido exercícios d este assunto.
2.1.1. Se a nova porcentagem é maior que a existente.
2.1.2. O Digital Math atualiza a porcentagem.
2.1.3. Se a nova porcentagem é menor ou igual que a existente
2.1.3.1. O Digital Math não muda nada.
2.2. Se o aluno não havia resolvido exercícios deste assunto.
2.2.1. O Digital Math insere a porcentagem.
3. Este subfluxo se encerra.

Fluxo Alternativo Tutorial (FA01) ref. UC03 -5


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção TUTORIAL.
2. O Digital Math exibe como utilizar as setas de navegação.
3. O aluno seleciona a opção RET ORNA.
4. O Digital Math retorna ao Exercício.
5. Este fluxo alternativo se encerra.

Fluxo Alternativo Encerrar Exercício (FA02) ref. UC03 -5


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção Encerrar Exercício.
2. O Digital Math executa o subfluxo Percentual (SB01) ref. UC03-4.
3. Este fluxo alternativo se encerra.

Fluxo Alternativo Menu Principal (FA02) ref. UC03 -5


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção MENU PRINCIPAL.
2. O Digital Math retorna ao Menu Principal.
3. Este fluxo alternativo se encerra.

3.3.2.3 Caso de Uso de Processamento Executar Desafio (UC04)


39

Caso de Uso: Executar Desafio.


Objetivo: Propor um desafio em grau mais elevado para obter o nível de conhecimento do aluno.
Atores: Aluno
Pré-condições: não aplicável.
Pós-condições: Desafio executado.
Fluxo Principal
1. O caso de uso é iniciado quando o aluno seleciona a opção Desafios.
2. O Digital Math faz uma busca aleatória dos desafios.
3. O Digital Math exibe a pergunta.
4. O aluno seleciona a alternativa.
5. O aluno confirma a alternativa.
6. O Digital Math compara a alternativa dada pelo aluno com a alternativa cadastrada.
7. Este caso de uso se encerra.

Fluxo Alternativo Tutorial (FA01) ref. UC04 -(4,5);


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção TUTORIAL.
2. O Digital Math exibe como utilizar as setas de navegação do controle remoto.
3. O aluno seleciona a opção RETORNA.
4. O Digital Math retorna ao Desafio
5. Este fluxo alternativo se encerra.

Fluxo Alternativo Novo Desafio (FA02) ref. UC04 -(4,5);


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona opção Novo Desafio.
2. O Digital Math exibe um novo desafio.
3. O caso de uso UC04 (3,4,5,6,7) se repetirá toda vez que o aluno confirmar a opção Novo
Desafio.
4. Este fluxo alternativo se encerra.
Fluxo Alternativo Sair (FA03) ref. U C04-(4,5);
Precondição: Não Aplicável.
Passos:
1. O aluno seleciona remoto a opção SAIR.
2. O Digital Math encerra o desafio.
3. O Digital Math retorna ao Menu Principal.
4. Este fluxo alternativo se encerra.

3.3.2.4 Caso de Uso de Processamento Responder Enquete ( UC05)

Caso de Uso: Responder Enquete


Objetivo: Realizar pesquisas sobre qualquer assunto interessante.
Atores: Aluno
Pré-condições: A enquete deve estar disponível para o aluno
Pós-condições: O aluno visualiza resultado parcial da enquete.
Fluxo Principal
1. O caso de uso é iniciado quando o aluno seleciona a opção Enquete l.
2. O Digital Math faz uma busca e verifica se há enquete para o aluno responder.
3. O Digital Math exibe a pergunta da Enquete com as alternativas.
4. O aluno seleciona a alternativa.
5. O aluno confirma a alternativa.
6. O Digital Math envia qual alternativa foi selecionada,
40

7. O Digital Math incrementa mais um na alternativa no contador.


8. O Digital Math retorna o contador atualizado.
9. O Digital Math exibe o total de alunos que responderam a enquete.
10. Este caso de uso se encerra.
Fluxo Alternativo Tutorial (FA01) ref. UC05 -(3,4,5);
Precondição: Não Aplicável.
Passos:
1. O aluno seleciona a opção TUTORIAL Enquete.
2. O Digital Math exibe como utilizar as setas de navegação do controle remoto.
2.1. Se o aluno selecionar o a opção RETORNAR.
2.1.1. O Digital Math retorna a Enquete.
2.2. Se o aluno selecionar a opção MENU PRINCIPAL.
2.2.1. O Digital Math retorna ao Menu Principal.
3. Este fluxo alternativo se encerra.

Fluxo Alternativo Menu Principal (FA02) ref. UC05 -(3,4,5);


Precondição: Não Aplicável.
Passos:
4. O aluno seleciona o botão vermelho do controle remoto a opção MENU PRINCIPAL.
5. O Digital Math retorna a Tela Menu Principal.
6. Este fluxo alternativo se encerra.

3.3.2.5 Caso de Uso Emitir Relatório (UC06).

Caso de Uso: Emitir Relatórios (UC06)


Objetivo: Visualizar alunos cadastrados no Digital Math.
Atores: Administrador.
Pré-condições: não aplicável.
Pós-condições: O administrado visualiza os dados desejados.
Fluxo Principal
1 Este caso de uso se inicia quando o Administrador aciona a opção Menu Relatório/Aluno
disponível na página principal na Web do perfil de Administrador.
2 O Digital Math exibe a Tela Gerar Relatório de Aluno.
3 O Administrador preenche as informações necessárias para gerar o relatório.
4 O Administrador aciona a opção Gerar Relatório.
5 O Digital Math busca os dados nas respectivas Tabelas e colunas no banco de dados.
6 O Digital Math exibe o relatório em um quadro de visualização.
7 Este caso de uso se encerra.

Fluxo Alternativo Cancelar (FA01) ref. UC06 -3.


Precondição: Não aplicável.
Passos:
1. O aluno cancela a operação.
2. O Digital Math retorna a tela anterior sem salvar dados no banco de dados.
3. Este fluxo alternativo se encerra.
41

3.4. Diagrama de Classes


42

3.5. Diagramas de Seqüência.


3.5.1. Diagrama de Seqüência - Praticar Exercício.
43

3.5.2. Diagrama de Seqüência - Responder Enquete.


44

3.5.3. Diagrama de Seqüência - Executar Desafio.


45

3.6. Diagramas de Atividades


3.6.1. Diagrama de Atividades – Executar Desafio
46

3.6.2. Diagrama de Atividades – Praticar Exercício


47

3.6.3. Diagrama de Atividades – Responder Enquete


48

3.6.4. Diagrama de Atividades – Manter Aluno


49

3.7. Diagrama de Estado


3.7.1. Diagrama de Estado – Responder Enquete
50

3.7.2. Diagrama de Estado – Praticar Exercício


51

3.7.3. Diagrama de Estado – Executar Desafio


52

3.8. Diagrama de DER


53

4. PROJETO

4.1. UC – Caso de Uso

4.1.1. Diagrama de Caso de Uso


54

4.1.2. Descrição e Casos de Uso


4.1.2.1 Caso de Uso Manter Usuário (UC01)

Caso de Uso: Manter Usuário


Objetivo: Manter dados referentes ao usuário
Ator: administrador
Pré-condições: O ator deve ter perfil de administrador.
Pós-condições: Usuário cadastrado.
Fluxo Principal
1. Este caso de uso inicia quando o administrador seleciona no Menu (drop -down) Manter a
opção (submenu) usuário da Tela Principal .
2. O Digital Math - Módulo Web verifica qual foi o método acionado pelo usuário
ManterUsuario?metodo=exibirTelaPesquisa e executa o método da Action
ManterUsuarioAction (Controller), neste caso exibirTelaPesquisa(), exibe logo em seguida
a tela Pesquisa Usuário(View) .
3. O administrador tem a opção de pesquisa por Nome (radio) ou por Código (radio).
4. O administrador seleciona a opção de pesquisa Nome no componente (radio) e preenche o
componente valorBusca(text) indicado pelo texto Digite Aqui e clica no botão
Localizar(submit).
5. O Digital Math - Módulo Web verifica qual foi o método acionado pelo usuário
executarAcao(‘executarPesquisa’) e executa o método da Action ManterUsuarioAction
(Controller), neste caso executarPesq uisa() que aciona o método do
FactoryDefault.getDaoManterUsuario.getUsuarios(paramOpcaoBusca,
paramValorBusca) (DAO) que irá pegar a conexão(Singleton) com o banco de dados
tvdigital através do método ConexaoDB.getConnection() e buscar os dados na tabela
usuário os campos id_usuario (Identificador exclusivo), id_tipo (tipo), id_nivel (nível), ip
(endereço IP), nome (nome completo), login (login exclusivo de acesso ao sistema) e
senha(senha de acesso ao sistema) retornando a medida em que os resultados foram
encontrados para um novo objeto do tipo PJUSUARIO que será adicionado a uma coleção
de dados do tipo ArrayList e irá fechar a conexão com o banco tvdigital;
6. O Digital Math - Módulo Web retorna a coleção de dados para a tela de Pesquisar Usuário
(View) que irá percorrer a coleção através da tagLib forEach exibindo o resultado da
consulta em uma Tabela Html, na coluna x o componente radio (setado com o valor do
código do usuário), na coluna código exibe o texto do código do usuário, na coluna nome
exibe o texto do nome do usuário e na coluna login exibe o texto do login do usuário.
7. O administrador verifica que o usuário não existe e clica no botão Novo(submit).
8. O Digital Math - Módulo Web verifica qual foi o método acionado pelo usuário
executarAcao(‘exibir ManterUsuario’) e executa o método da Action ManterUsuarioAction
(Controller), neste caso exibirManterUsuario(), e exibe a tela Dados do Usuário (View)
com os campos Tipo(select) setado com o valor padrão Aluno, Nível(select) setado com o
valor padrão Médio 1, IP(text) em branco, Nome (text) em branco.
9. O administrador seleciona e preenche os campos e clica o botão Salvar(submit).
10. O Digital Math - Módulo Web verifica qual foi o método acionado pelo usuário
executarAcao(‘executarSalvar’) e executa o método da Action ManterUsuarioAction
(Controller), neste caso executarSalvar() que valida os dados e cria um objeto PJUSUARIO
setando os valores preenchidos pelo usuário, depois aciona o método
FactoryDefault.getDaoManterUsuario.inserirUsuario(usuario) (DAO) que irá pegar a
conexão(Singleton) com banco de dados que antes de salvar o usuário gera um Login para o
usuário através dos métodos gerarLogin() e getNextUserId() concatenando os resultados
para setar no objeto usuario(PJUSUARIO) através do método setLogin(), depois gera uma
senha para o usuário através do método gerarSenha() setando o resultado para o objeto
usuario(PJUSUARIO) através do método setSenha(). Logo Após, irá pegar a
conexao(Singleton) com o banco de dados tvdigital através do método
ConexaoDB.getConnection() e inserir os dados na tabela usuário nos campos id_usuario
(Identificador exclusivo) neste momento será passado um objeto nulo pois no banco de
dados este identificador é incrementado de forma automática, id_tipo (tipo), id_nivel
(nível), ip (endereço IP), nome (nome completo), login (login exclusivo de acesso ao
55

sistema) e senha(senha de acesso ao sistema), após inserir os dados do usuário no banco


tvdigital o Digital Math irá fechar a conexão com o banco de dados.

11. O Digital Math - Módulo Web retorna para a tela de Pesquisar Usuário(View) e exibe a
MSG_SUCCESS_CADASTRO.
12. Este fluxo se encerra.

Subfluxo Cancelar (SB01) ref. UC01(3,4,5,6,8)


Precondição: Não Aplicável.
Passos:
1. O administrador clica no botão Cancelar
2. O Digital Math - Módulo Web retorna a Tela de Pesquisa.
3. Este subfluxo se encerra.

Subfluxo Detalhar (SB02) ref. UC01(6)


Precondição: Não Aplicável.
Passos:
1. O administrador clicar no botão Detalhar.
2. O Digital Math - Módulo Web exibe os campos Código, Nome, Login, Senha, Confirmar
Senha, Tipo e Nível preenchido.
3. Este subfluxo se encerra.

Subfluxo Excluir (SB03) ref. SB02(2)


Precondição: Não Aplicável.
Passos:
1. O administrador clicar no botão Excluir.
2. O Digital Math - Módulo Web exclui a MSG_EXCLUIR
3. O Digital Math - Módulo Web exclui o usuário
4. O Digital Math - Módulo Web exclui o MAG_SUCESSO
5. Este subfluxo se encerra.

4.1.2.1.1 Mensagem

Número Identificação da Categoria Texto de mensagem


mensagem
1 MSG_RESULTADO Informativa Você acertou... das 10 questões totalizando
...% de acertos.
2 MSG_ERRO Informativa Falha de Comunicação.
Atenção usuário devido...
56

4.1.2.2 Caso de Uso de Processamento Praticar Exercício (UC03)

Caso de Uso: Praticar Exercícios


Objetivo: Exercitar o conhecimento do aluno.
Ator: Aluno.
Pré-condições: O aluno selecionou a opção Exercícios na Tela Menu Principal.
Pós-condições: Exercício resolvido.
Fluxo Principal
1. O caso de uso é iniciado quando o aluno seleciona através do botão Acionar Comandos do
Controle remoto a opção Exercicios, correspondente ao índice 2 na interface tela
MenuPrincipal.
2. O Digital Math chama o método starXlet() da interface tela interface_Exercicio_Assuntos .
3. A tela interface_Exercicio_Assuntos executa o método chamaRede().
4. O método chamaRede(), através da instância da classe socke tCliente, chama o método
setMensagem() passando o valor "Exercicio1".
5. O método chamaRede(), chama o método executaCliente().
6. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passando o valor
“Exercicio1” através da conexão com a rede.
7. A classe socketServidor() recebe o valor e armazena na variável String mensagem, e executa o
método setIpUsuario(), através da instancia da classe ExercicioBINs(), passando o I P do usuário
conectado.
8. Este método chama o método gravaAssuntos() da classe ExercicioBINs.
9. O método gravaAssuntos() executa o método getAssuntosExercicio(), através da instancia da
classe Facade(), passando o IP do usuário.
10. A classe Facade() executa o mét odo getAssuntos(), através da instancia da classe
ExercicioDAO(). O sistema executa uma conexão com o banco de dados tvdigital e busca na
tabela assunto, os dados da coluna NomeAss tendo por base o id_assunto.
11. O sistema executa uma conexão com o banco de dados tvdigital e busca na tabela assunto, os
dados das colunas nomeAss e id_nivel.
12. A classe ExercicioDAO() retorna os assuntos constantes no banco para a classe Facade(), que
por sua vez retorna este valor para a classe ExercicioBINs(), armazenando na var iável String
grava_assuntos;
13. A classe ExercicioBINs(), através do método executaGravacao(), armazena o valor desta
variável em um arquivo binário.
14. A classe socketServidor() envia este arquivo para a classe socketCliente(), através da conexão
de rede.
15. Na classe Interface_Exercicio_Assuntos, o método Componentes() é executado e chama, através
da instância da classe MenuPrincipalBINs(), o método leNivelAluno();
16. Na classe Interface_Exercicio_Assuntos, o método Componentes() é executado e chama, através
da instância da classe ExerciciosBINs(), o método leAssuntos() que armazena os valores na
variável String assuntos[].

ALTERNATIVO

17. O usuário, através do controle remoto, seleciona o assunto desejado utilizando as setas para
cima ou para baixo. A Interface_Exercic ios_Assuntos, através do método keyPressed(),
reconhece os comandos como valores “38” (seta para cima) e “40” (seta para baixo).
18. O usuário, através do controle remoto, confirma sua seleção através do botão Confirmar. A
classe Interface_Exercicios_Assuntos, através do método keyPressed(), reconhece o comando
como valor “10”.
19. A classe Interface_Exercicios_Assuntos, através da instancia da classe ExercicioBINs, chama os
métodos gravaAssEsc() e gravaIndexAssEsc(), armazenando em arquivos binários o índice e
57

nome do assunto escolhido pelo usuário.


20. A tela interface_Exercicio_Assuntos executa o método chamaRede2().
21. O método chamaRede2(), através da instância da classe socketCliente, chama o método
setMensagem() passando a string valorada com o termo " Exercicio5+as suntoEscolhido".
22. O método chamaRede2(), chama o método executaCliente().
23. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passando o valor "
"Exercicio5"+assuntoEscolhido " através da conexão com a rede.
24. A classe socketServidor() recebe a mensagem e executa o método
gravaPorcentagemAssAluno(), o IP do cliente e o assunto escolhido, através da instancia da
classe ExercicioBINs().
25. A classe ExercicioBINs execut a o método getPorcentagemAssunto, através da instancia da
classe Facade, que por sua vez executa o método buscaPorcentagemAssunto(), através da
instancia da classe ExercicioDAO.
26. O sistema executa uma conexão com o banco de dados tvdigital e busca na tabela
resposta_exercicio, os dados da coluna porcentagem que possui id_usuario e id_assunto
correspondentes aos valores recebidos.
27. A classe ExercicioBINs executa o método executaGravacao(), armazenando esta porcentagem
em arquivo binário.
28. A classe socketServidor() envia estes arquivos para a classe socketCliente(), através da conexão
de rede.
29. A classe Interface_Exercicio_Assuntos, através da instancia da classe ExercicioBINs, chama o
método LePorAssAluno(), lendo o arquivo binário recebido do servidor.
30. O sistema verifica que a porcentagem é menor do que 60 porcento.
31. Através da instancia da classe Interface_Exercicio_Resolucao, o método startXlet() é chamado.
A classe Interface_Exercicio_Assuntos tem seu método destroyXlet() chamado, encerrando esta
tela.
32. A tela interface_Exercicio_Resolucao executa o método chamaRede().
33. O método chamaRede(), através da instância da classe socketCliente, chama o método
setMensagem() passando o valor "Exercicio2+leAssEsc()". - leAssEsc() retorna o assunto
escolhidoo, através da instancia da classe ExercicioBINs().
34. O método chamaRede(), chama o método executaCliente().
35. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passando o valor
"Exercicio2+leAssEsc()" através da conexão com a rede.
36. A classe socketServidor() recebe o valor e armazena na variável String mensagem, e executa o
método setAssuntoEscolhido(), gravaAssuntoEscolhido(), gravaQtdExercAssunto(), através da
instancia da classe ExercicioBINs(), passando o IP do usuário conectado.
37. O método gravaAssuntoEscolhido() executaGravacao();
38. O método gravaQtdExercAssunto() , executa o método getQuantidadeExerciciosAssunto()
através da instancia da classe Facade, que executa o método getQt dExercPorAssunto através da
instancia da classe ExercicioDAO(), que acessa o banco de dados tvdigital e busca na tabela
assunto, os dados das colunas id_assunto, tendo como parâmetro o nome do assunto recebido e
retorna o valor para a classe Facade, que po r sua vez retorna para a classe ExercicioBINs.
39. A classe ExercicioBINs executa o método executaGravacao(), armazenando este valor em
arquivo binário.
40. A classe socketServidor() envia este arquivo para a classe socketCliente(), através da conexão
de rede.
41.
42. A classe Interface_Exercicio_Assuntos (), através de seu método chamaRandomico(), executa o
método setQtdBanco() através da instância da classe Randomico, passando o valor obtido pelo
método leQtdExercAssunto () da mesma classe.
43. Ainda no método chamaRandomic o(), a classe Interface_Desafio(), executa o método
setQtdRepeticoes(), passando o valor “10”, representando a quantidade de valores randômicos a
serem obtidos.
44. Ainda no método chamaRandomico(), a classe Interface_Desafio(), executa o método
getIdSolicitado().
45. A classe Randomico(), executando o método getIdSolicitado(), executa seu método
geraRandomico(), retorna um valor aletatório para a classe Interface_Exercicio_Assuntos,
58

armazenando na variável IdRandomico[].


46. Na classe Interface_Exercicio_Assuntos, o m étodo Componentes() é executado e chama, através
da instância da classe MenuPrincipalBINs(), o método leNivelAluno();
47. Na classe Interface_Exercicio_Assuntos, o método Componentes() é executado e chama, através
da instância da classe ExerciciosBINs(), o mét odo leAssuntos() que armazena os valores na
variável String assuntos[].
48. A tela interface_Exercicio_Resolucao executa o método chamaRede2().
49. O método chamaRede2(), através da instância da classe socketCliente, chama o método
setMensagem() passando o valor " Exercicio3"+newIndex+"*"+exebins.leAssEsc().
50. O método chamaRede2(), chama o método executaCliente().
51. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passa ndo a string
com valor "Exercicio3"+newIndex+"*"+exebins.leAssEsc(), através da conexão com a rede.
52. A classe socketServidor() recebe a mensagem e executa o método setIdExercicio(), através da
instancia da classe ExercicioBINs, passando o valor “ newIndex” recebido do cliente.
53. A classe socketServidor() executa o método setAssuntoEscolhido (), através da instancia da
classe ExercicioBINs, passando o valor recebido do cliente.
54. A classe socketServidor() executa o método gravaConteudo(),através da instancia da cl asse
ExercicioBINs. Este método executa os métodos gravaPergunta(), gravaAlterCorreta(),
gravaAternativas(); da classe ExercicioBINs.
55. Através da instancia da classe Facade(), é executado o método getPerguntaExercicio, que,
através da instancia da classe ex ercícioDAO executa o método getPergunta(). O sistema executa
uma conexão com o banco de dados tvdigital e busca na tabela exercicio, os dados da coluna
pergunta, tendo por base id_exercicio e id_assunto. A classe ExercicioBINs() executa o método
executaGravacao e armazena o valor recebido do banco em arquivo binário.
56. Através da instancia da classe Facade(), é executado o método getAlternativaCorretaExercicio,
que, através da instancia da classe exercícioDAO executa o método getAlterCorreta (). O
sistema executa uma conexão com o banco de dados tvdigital e busca na tabela exercicio, os
dados da coluna OpcaoCorreta tendo por base o id_exercicio e o id_assunto. A classe
ExercicioBINs() executa o método executaGravacao e armazena o valor recebido do banco em
arquivo binário.
57. Através da instancia da classe Facade(), é executado o método getAlternativasExercicio, que,
através da instancia da classe exercícioDAO executa o método getAlternativas (). O sistema
executa uma conexão com o banco de dados tvdigital e busca na tabela exercicio_alt, os dados
da coluna alternativa tendo por base o id_exercicio. A classe ExercicioBINs() executa o método
executaGravacao e armazena o valor recebido do banco em arquivo binário.
58. A classe socketServidor() envia este arquivo para a c lasse socketCliente(), através da conexão
de rede.
59. Na classe Interface_Exercicio_Resolucao, o método Componentes() é executado e chama,
através da instância da classe ExercicioBINs, os métodos leAssEsc, leQuantResolv, lePergunta e
leAlternativas são chamados.
60. O usuário, através do controle remoto, confirma sua seleção através do botão Confirmar. A
Interface_Desafios, através do método keyPressed(), reconhece o comando como valor “10”.
61. Na classe Interface_Exercicio_Resolucao, através da instância da classe E xercicioBINs, chama
os métodos leQuantResolv, setQtdResolvido, gravaQuantResolv e leAterCorreta, sendo
gravaQuantiResolv() incrementada.
62. O sistema compara os dados entre leAlterCorreta() e índice selecionado pelo usuário.
63. Se índice selecionado igual a leAl terCorreta(), o valor de leQuantAcert() é incrementado, e os
métodos setQtdAcertivas e gravaQuantAcert são executados através da instancia da classe
ExercicioBINs.
64. Se índice selecionado diferente de leAlterCorreta() o sistema verifica se leQuantResolv, ou seja,
a quantidade de exercícios resolvidos é igual a 10. Caso negativo, os itens 47 -62 são repetidos.
65. Caso positivo, Através da instancia da classe Interface_Exercicio_Resultado, o método
startXlet() é chamado. A classe Interface_Exercicio_Resolucao tem seu método destroyXlet()
chamado, encerrando esta tela.
66. A classe Interface_Exercicio_Resultado executa o método Componentes().
67. Através da instancia da classe ExercicioBINs(), a classe Interface_Exercicio_Resultado executa
os métodos leQuantAcert (),leQuant Resolv () e leQuantAcert ().
68. Através da instancia da classe CalculaPorcentagem(), a classe Interface_Exercicio_Resultado
59

executa os métodos setTotal() e setAcertos(), passando quantidade de exercícios resolvidos e a


quantidade de exercícios acertados.
69. Ainda utilizando esta instância, a classe Interface_Exercicio_Graficos chama os métodos
getPorcentagem(). Este método calcula a porcentagem de acertos, retornando este valor para a
classe Interface_Exercicio_Resultado
70. A tela interface_Exercicio_Resultado executa o método chamaRede().
71. O método chamaRede(), através da instância da classe socketCliente, chama o método
setMensagem() passando o valor "Exercicio4"+Porcentagem+"*"+Assunto escolhido. O assunto
escolhido recebe o valor do método leAssEsc(), através da i nstancia da classe exercicioBINs()
72. O método chamaRede(), chama o método executaCliente().
73. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passando o valor
valor "Exercicio4"+Porcentagem+"*"+Assunto escolhido através da conexão com a rede.
74. A classe socketServidor() recebe o valor e armazena na variável String mensagem, e executa o
método atualizaPorcentagemBanco (), através da instancia da classe ExercicioBI Ns(), passando
o IP do usuário conectado, o assunto escolhido e a porcentagem, valores recebidos na
mensagem.
75. Este método chama o método atualizaPorcentagemAluno ()através da instancia da classe
Facade(), passando o IP do usuário.
76. A classe Facade() executa os métodos inserePorcentagemAluno() e incrementaNivelAluno(),
através da instancia da classe ExercicioDAO().
77. Através do método inserePorcentagemAluno(), a classe ExercicioDAO() verifica se o exercício
do assunto em questão já havia sido feito pelo aluno. Caso negativo, o sistema insere os dados
na tabela resposta_exercicio, nas colunas id_assunto, id_usuario, dataResolucao, porcentagem .
Caso positivo, é feito um update sobre as colunas acima citadas, na linha correspondente
78. Através do método incrementaNive lAluno(), o sistema verifica se todos assuntos do nível do
aluno cujo este os resolveu com porcentagem acima de 60. Caso positivo, seu nível é
incrementado. O sistema utiliza o método getQtdAssuntosPorNivel() para saber quantos
assuntos existem no nível, r ealizando um COUNT(*) na tabela assunto, tendo por base o nível
do aluno. O sistema utiliza o método getTotalResolvidosAluno() para saber quantos assuntos o
aluno já completo com mais de 60 porcento, realizando um COUNT(*) na tabela
resposta_exercicio. Caso a quantidade de assuntos no nível seja igual a quantidades de assuntos
que o usuário resolveu em seu nível, o sistema executa uma conexão com o banco de dados
tvdigital e atualiza, na tabela usuario, a coluna id_nivel tendo por base o id_Aluno.
79. O usuário pressiona o botão vermelho do controle remoto. A Interface_Exercicios_Resultado,
através do método keyPressed(), reconhece os comandos como valores “403” (vermelho).
80. Através da instancia da classe Menu_Principal, o método startXlet() é chamado. A class e
Interface_Exercicio tem seu método destroyXlet() chamado, encerrando esta tela.
81. Este caso de uso se encerra.

Fluxo Alternativo Tutorial (FA01) ref. UC02 -(3,4); FA02-3.


Precondição: Não Aplicável.
Passos:
1. O aluno seleciona o botão verde do controle remo to a opção TUTORIAL da Tela
interface_Exercicio_Assuntos. Esta interface, através do método keyPressed(), reconhece os
comandos como valores “404” (verde) .
2. A classe interface_Exercicio_Assuntos executa os métodos
scene.removeAll(),scene.add(iconeImg4) e sc ene.repaint(),exibindo como utilizar as setas de
navegação do controle remoto.
3. O aluno seleciona o botão azul do controle remoto a opção RETORNA. A
interface_Exercicio_Assuntos , através do método keyPressed(), reconhece os comandos
como valores “406” (azul).
4. A classe interface_Exercicio_Assuntos executa os métodos scene.removeAll();
scene.repaint(); Componentes().
5. O Digital Math retorna a interface_Exercicio_Assuntos .
6. Este fluxo alternativo se encerra.
Fluxo Alternativo Menu Principal (FA02) ref. UC02 -(3,4); FA02-3.
Precondição: Não Aplicável.
60

Passos:
1. O usuário pressiona o botão vermelho do controle remoto. A Interface_Exercicios_Resultado,
através do método keyPressed(), reconhece os comandos como valores “403” (vermelho) .
2. Através da instancia da classe Me nu_Principal, o método startXlet() é chamado. A classe
Interface_Exercicio tem seu método destroyXlet() chamado, encerrando esta tela.
3. Este fluxo alternativo se encerra
Fluxo Alternativo Encerrar Exercicio (FA02) ref. SF01-(3,4)
Precondição: Não Aplicável.
Passos:
1. O usuário pressiona o botão amarelo do controle remoto. A Interface_Exercicios_Resultado,
através do método keyPressed(), reconhece os comandos como valores “405” (amarelo) .
2. O item 63 em diante do fluxo principal é executado.
3. Este caso de uso se encerra

4.1.2.2.1 Mensagem

Número de Identificação da Categoria Texto de mensagem


ordem mensagem
MSG_ENCERRAR.
1 Informativa Você deseja realmente encerrar o
exercício?

4.1.2.3 Caso de Uso de Processamento Executar Desafio (UC04)

Caso de Uso: Executar Desafio.


Objetivo: Propor um desafio em grau mais elevado para obter o nível de conhecimento do aluno.
Atores: Aluno
Pré-condições: não aplicável.
Pós-condições: Desafio executado.
Fluxo Principal
1. O caso de uso é iniciado quando o aluno sele ciona através do botão Acionar Comandos do Controle
remoto a opção Desafios, correspondente ao índice 1 na interface tela MenuPrincipal.
2. O Digital Math chama o método starXlet() da interface tela interface_desafio.
3. A tela interface_desafio executa o método chamaRede().
4. O método chamaRede(), através da instância da classe socketCliente, chama o método
setMensagem() passando o valor "Desafio".
5. O método chamaRede(), chama o método executaCliente().
6. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passando o valor
“Desafio” através da conexão com a rede.
7. A classe socketServidor() recebe o valor e armazena na variável String mensagem, e executa o
método gravaQtdDesafiosBanco(), através da instancia da classe DesafiosBINs().
8. A classe DesafioBINs() executa o método getQtdDesafiosBanco(), através da instancia da classe
Facade().
9. A classe Facade() executa o método getQtdDesafios(), através da instancia da classe Desafi oDAO.
O sistema executa uma conexão com o banco de dados tvdigital e realiza um COUNT(*) na tabela
desafio.
10. A classe DesafioDAO() retorna a quantidade de desafios constantes no banco para a classe Facade(),
que por sua vez retorna este valor para a classe DesafioBINs(), armazenando na variável String
QtdDesafiosBanco;
11. A DesafioBINs(), através do método executaGravacao(), armazena o valor desta variável em um
arquivo binário chamado QtdNoAssunto.bin.
61

12. A classe socketServidor() envia este arquivo para a classe socketCliente(), através da conexão de
rede.
13. A classe Interface_Desafio(), através de seu método chamaRandomico(), executa o método
setQtdBanco() através da instância da classe Randomico, passando o valor obtido pelo método
leQtdDesafiosBanco() da mesma classe.
14. Ainda no método chamaRandomico(), a classe Interface_Desafio(), executa o método
setQtdRepeticoes(), passando o valor “1”, representando a quantidade de valores randômicos a
serem obtidos.
15. Ainda no método chamaRandomico(), a classe Interface_Desafio(), executa o método
getIdSolicitado().
16. A classe Randomico(), executando o método getIdSolicitado(), executa seu método
geraRandomico(), retorna um valor aletatório para a classe Interface_Desafio, armazenando na
variável IdRandomico[].
17. A tela interface_desafio executa o método chamaRede2().
18. O método chamaRede2(), através da instância da classe socketCliente, chama o método
setMensagem() passando o valor "Desafio".
19. O método chamaRede2(), chama o método executaCliente().
20. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passando a string com
valor “Desafio+IdRandomico[0]” através da conexão com a rede.
21. A classe socketServidor() recebe a mensagem e executa o mét odo setIdDesafio(), através da
instancia da classe DesafiosBINs(), passando o valor aleatório adquirido anteriormente.
22. Ainda através da instancia acima, é chamado o método executaDesBINs(), passando o Id recebido.
23. Este método chama os métodos gravaPergunta(), gracaOpcoes(), gravaRespCorreta() e grava
Solucao(), passando o Id recebido.
24. O método gravaPergunta(), através da instancia da classe Facade(), chama o método
getPerguntaDesafio(), passando o Id recebido.
25. O método getPerguntaDesafio() chama o método getPergunta(), referente a classe DesafioDAO(). O
sistema executa uma conexão com o banco de dados tvdigital e busca na tabela desafio, os dados da
coluna pergunta tendo por base o id_desafio. e retorna a pergunta do desafio pertencente ao Id
recebido.
26. O método gracaOpcoes(), através da instancia da classe Facade(), chama o método
getAlternativasDesafio(), passando o Id recebido.
27. O método getAlternativasDesafio () chama o método getAlternativas(), referente a classe
DesafioDAO(). O sistema executa uma conexão com o banco de dados tvdigital e busca na tabela
desafio_alt, os dados da coluna alternativa tendo por base o id_desafio, e retorna as alternativas do
desafio pertencente ao Id recebido.
28. O método gravaRespCorreta(), através da instancia da classe Facade() , chama o método
getRespCorretaDesafio(), passando o Id recebido.
29. O método getRespCorretaDesafio() chama o método getAlterCorreta(), referente a classe
DesafioDAO(),O sistema executa uma conexão com o banco de dados tvdigital e busca na tabela
desafio, os dados da coluna opcaoCorreta tendo por base o id_desafio, e retorna a pergunta do
desafio pertencente ao Id recebido.
30. O método gravaSolucao(), através da instancia da classe Facade(), chama o método
getSolucaoDesafio(), passando o Id recebido.
31. O método getSolucaoDesafio() chama o método getSolucao(), referente a classe DesafioDAO().O
sistema executa uma conexão com o banco de dados tvdigital e busca na tabela desafio, os dados da
coluna explicacao tendo por base o id_desafio, e retorna a pergunta do desafi o pertencente ao Id
recebido.
32. A DesafioBINs(), através do método executaGravacao(), armazena estes valores em arquivos
binários.
33. A classe socketServidor() envia estes arquivos para a classe socketCliente(), através da conexão de
rede.
34. A classe Interface_Desafios() chama o método Componentes();
35. O método Componentes() é executado e chama, através da instância da classe DesafiosBINs(), os
métodos leRespCorreta(), que armazena o valor na variável String resp_correta, lePergunta() e
leOpcoes() que armazena os valores na variável String opcoes[].
36. O usuário, através do controle remoto, seleciona a alternativa correta utilizando as setas para cima ou
para baixo. A Interface_Desafios, através do método keyPressed(), reconhece os comandos como
62

valores “38” (seta para cima) e “40” (seta para baixo).


37. O usuário, através do controle remoto, confirma sua seleção através do botão Confirmar. A
Interface_Desafios, através do método keyPressed(), reconhece o comando como valor “10”.
38. A tela interface_desafio executa o método chamaRede3().
39. O método chamaRede3(), através da instância da classe socketCliente, chama o método
setMensagem() passando a string valorada com o termo "Desafio+Opção escolhida+
IdRandomico[0]".
40. O método chamaRede3(), chama o método executaCliente().
41. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método enviando(), passando a string com
valor “Desafio+IdRandomico[0]” através da conexão com a rede.
42. A classe socketServidor() recebe a mensagem e executa o método getIdAluno(), passando o IP do
usuário que a conexão recebeu, através da instancia da classe Facade().
43. A classe Facade, executa o método getIdAluno(), passando este IP, através da instancia da classe
MenuPrincipalDAO. O sistema executa uma conexão com o banco de dados tvdigital e busca na
tabela usuario, os dados da coluna id_usuario tendo por base o IP, e retorna o valor do Id do usuário
conectado.
44. A classe socketServidor() executa os métodos setIdEscolhido(), setIdDesafio(), setIdUsuario(), e
executaIncrementos();
45. O método executaIncrementos(), através da instancia da classe Facade(), executa o método
incrementaDesafiosRespondidos(), passando os valores acima citados e os métodos
getTotalDesafiosResolvidos(), gravaTotalRespondido(), getTotalDesafiosCorretos() e
gravaTotalAcertos(). Estes últimos métodos armazenam, em arquivos binários, os valores
correspondentes ao total de desafios que foram respondidos, e o total de desafios respondidos
corretamente;
46. A classe Facade(), executa o método incrementaDesafiosRespondido s(), através da instancia da
classe DesafioDAO(), passando os valores que serão gravados no banco de dados. O sistema executa
uma conexão com o banco de dados tvdigital e insere os dados na tabela resposta _desafio.
47. A classe socketServidor() envia estes arquivos para a classe socketCliente(), através da conexão de
rede.
48. O usuário pressiona o botão vermelho do controle remoto. A Interface_Desafios, através do método
keyPressed(), reconhece os comandos como valores “40 3” (vermelho).
49. Através da instancia da classe Menu_Principal, o método startXlet() é chamado. A classe
Interface_Desafio tem seu método destroyXlet() chamado, encerrando esta tela.
50. Este caso de uso se encerra
Fluxo Alternativo Tutorial (FA01) ref. UC04(1 -48);
Precondição: Não Aplicável.
Passos:
1. O aluno seleciona o botão verde do controle remoto a opção TUTORIAL da Tela Desafio. A
Interface_Desafios, através do método keyPressed(), reconhece os comandos como valores “404”
(verde).
2. A classe Interface_Desafio executa os métodos scene.removeAll(),scene.add(iconeImg4 ) e
scene.repaint(),exibindo como utilizar as setas de navegação do controle remoto.
3. O aluno seleciona o botão azul do controle remoto a opção RETORNA. A Interface_Desafios,
através do método keyPressed(), reconhece os comandos como valores “406” (azul).
4. A classe Interface_Desafio executa os métodos scene.removeAll(); scene.repaint(); Componentes().
5. O Digital Math retorna a Tela Desafio.
a. Este fluxo alternativo se encerra.
1. Fluxo Alternativo Novo Desa fio (FA02) ref. UC04-(1-48);
2. Precondição: Não Aplicável.
3. Passos:
4. O aluno seleciona o botão amarelo do controle remoto a opção Novo Desafio da Tela Desafio. A
Interface_Desafios, através do método keyPressed(), reconhece os comandos como valores “405”
(amarelo).
5. A classe Interface_Desafio executa os métodos scene.removeAll() e scene.repaint();
6. O caso de uso UC04 (4-48) se repetirá toda vez que o aluno confirmar a opção Novo Desafio.
7. O Digital Math exibe um novo desafio baseado em número aleatório .
8. O usuário pressiona o botão vermelho do controle remoto. A Interface_Desafios, através do método
keyPressed(), reconhece os comandos como valores “403” (vermelho).
63

9. Através da instancia da classe Menu_Principal, o método startXlet() é chamado. A classe


Interface_Desafio tem seu método destroyXlet() chamado, encerrando esta tela.
10. Este caso de uso se encerra
Fluxo Alternativo Sair (FA03) ref. UC04 -(4,5);
Precondição: Não Aplicável.
Passos:
1. O aluno seleciona o botão vermelho do controle remoto a opção SAIR da Tela Desafio.
2. A Interface_Desafios, através do método keyPressed(), reconhece os comandos como valores
“403” (vermelho).

3. O Digital Math encerra o desafio.


4. O Digital Math retorna a Tela Menu Principal.
5. O usuário pressiona o botão vermelho do controle remoto. A Inte rface_Desafios, através do
método keyPressed(), reconhece os comandos como valores “403” (vermelho).
6. Através da instancia da classe Menu_Principal, o método startXlet() é chamado. A classe
Interface_Desafio tem seu método destroyXlet() chamado, encerrando esta tela.
7. Este caso de uso se encerra

4.1.2.3.1 Mensagem

Número Identificação da Mensagem Categoria Texto de mensagem


1 MSG_RESPOSTA Informativa Sinto muito a resposta correta é...
2 MSG_RESPOSTA Informativa Parabéns a resposta correta é...
Falha de Comunicação.
3 MSG_ERRO Informativa
Atenção usuário devido...
64

4.1.2.4 Caso de Uso de Processamento Responder Enquete (UC05)

Caso de Uso: Responder Enquete


Objetivo: Realizar pesquisas sobre qualquer assunto interessante.
Atores: Aluno
Pré-condições: A enquete deve estar disponível para o aluno
Pós-condições: O aluno visualiza resultado parcial da enquete.
Fluxo Principal
1. O caso de uso é iniciado quando o aluno seleciona através do botão Acionar Comandos do Controle
remoto a opção Enquete, correspondente ao índice 0 na interface tela MenuPrincipal.
2. O Digital Math chama o método starXlet() da interface tela interface_enquete.
3. A tela interface_enquete executa o método chamaRede().
4. O método chamaRede(), através da instância da classe socketClient e, chama o método
setMensagem() passando o valor "Enquete".
5. O método chamaRede(), chama o método executaCliente().
6. A classe socketCliente() executa seus métodos conectarServidor(), getStreams(),
processandoConexao(). Este último método executa o método env iando(), passando o valor
“Enquete” através da conexão com a rede.
7. A classe socketServidor() recebe o valor e armazena na variável String mensagem, e executa o
método executaThis(), através da instancia da classe EnqueteBINs().
8. Este método chama os seguint es métodos da classe EnqueteBINs: gravaIdEnquete(),
gravaPergunta(), gravaOpcoes().
9. O método gravaPergunta executa o método getPerguntaEnquete(), através da instancia da classe
Facade().
10. A classe Facade() executa o método getPergunta(), através da instanci a da classe EnqueteDAO().O
sistema executa uma conexão com o banco de dados tvdigital e busca na tabela enquete, os dados da
coluna pergunta tendo por base o id_enquete;
11. A classe EnqueteDAO() retorna a pergunta da enquete constante no banco para a classe F acade(),
que por sua vez retorna este valor para a classe EnqueteBINs(), armazenando na variável String
grava_Pergunta;
12. A classe EnqueteBINs(), através do método executaGravacao(), armazena o valor desta variável em
um arquivo binário chamado Pergunta.bin.
13. O método gravaOpcoes executa o método getAlternativasEnquete(), através da instancia da classe
Facade().
14. A classe Facade() executa o método getAlternativas(), através da instancia da classe
EnqueteDAO().O sistema executa uma conexão com o banco de dados tvdigital e busca na tabela
enquete_alt, os dados da coluna altenrativa tendo por base o id_enquete
15. A classe EnqueteDAO() retorna as alternativas da enquete constante no banco para a classe Facade(),
que por sua vez retorna este valor para a classe EnqueteB INs(), armazenando na variável String
opcoes;
16. A classe EnqueteBINs(), através do método executaGravacao(), armazena o valor desta variável em
arquivos binários.
17. A classe socketServidor() envia este arquivo para a classe socketCliente(), através da conexão de
rede.
18. Na classe Interface_Enquete, o método Componentes() é executado e chama, através da instância da
classe EnquetesBINs(), os métodos lePergunta() e leOpcoes() que armazena os valores na variável
String opcoes[].
19. O usuário, através do controle remoto , seleciona a alternativa correta utilizando as setas para cima ou
para baixo. A Interface_Enquetes, através do método keyPressed(), reconhece os comandos como
valores “38” (seta para cima) e “40” (seta para baixo).
20. O usuário, através do controle remoto, c onfirma sua seleção através do botão Confirmar. A
Interface_Enquetes, através do método keyPressed(), reconhece o comando como valor “10”.
21. A tela interface_Enquete executa o método chamaRede2().
22. O método chamaRede2(), através da instância da classe socketC liente, chama o método
setMensagem() passando a string valorada com o termo "AtualizarEnquete+newIndex(opção
escolhida)".
23. O método chamaRede2(), chama o método executaCliente().
24. A classe socketCliente() executa seus métodos conectarServidor(), getStreams() ,
65

processandoConexao(). Este último método executa o método enviando(), passando o valor


"AtualizarEnquete+newIndex(opção escolhida)" através da conexão com a rede.
25. A classe socketServidor() recebe a mensagem e executa o método setOpcaoEscolhida, passando o
índice recebido do cliente, através da instancia da classe EnqueteBINs().
26. A classe EnqueteBINs executa o método gravaIdEnquete, através da instancia da classe
EnqueteBINs, que por sua vez executa o método executaGravacao(), armazenando o valor do Id em
arquivo binário.
27. A classe socketServidor() armazena o IP do usuário na variável IP.
28. A classe socketServidor() chama o método getIdAluno(), através da instancia da classe Facade.
29. A classe Facade, executa o método getIdAluno(), passando este IP, através da in stancia da classe
MenuPrincipalDAO. O sistema executa uma conexão com o banco de dados tvdigital e busca na
tabela usuario, os dados da coluna id_usuario tendo por base o IP e retorna o valor do Id do usuário
conectado.
30. A classe socketServidor() executa o método incrementaEnqueteRespondida() através da instancia da
classe Facade, que por sua vez executa o método. incrementaEnqueteRespondida() através da
instancia da classe EnqueteDAO(); O sistema executa uma conexão com o banco de dados tvdigital e
insere na tabela resposta_enquete, os dados recebidos nas colunas id_Enq_alt, id_Enq, id_usuario,
data_resposta .
31. A classe socketServidor() executa o método gravaContadores() através da instancia da classe
EnqueteBINs().
32. Este método executa, através da instanci a da classe Facade(), o método getContadoresEnquete(),
passando o idEnquete, que por sua vez chama o método getConts, através da instancia da classe
EnqueteDAO(). O sistema executa uma conexão com o banco de dados tvdigital e busca na tabela
resposta_enquete, COUNT(*) tendo por base o id da enquete e o id da alternativa, e retorna os
contadores do referido enquete.
33. A classe EnqueteBINs() executa o método executaGravação() armazenando estes valores em
arquivos binários.
34. A classe socketServidor() envia este s arquivos para a classe socketCliente(), através da conexão de
rede.
35. Através da instancia da classe Interface_Enquete_Graficos, o método startXlet() é chamado. A classe
Interface_Enquete tem seu método destroyXlet() chamado, encerrando esta tela.
36. A classe Interface_Enquete_Gráficos executa o método Componentes().
37. Através da instancia da classe EnqueteBINs(), a classe Interface_Enquete_Graficos executa os
métodos lePergunta(), leOpcoes() e leContadores().
38. Através da instancia da classe CalculaGraficoEnquete (), a classe Interface_Enquete_Graficos
executa os métodos setTotal(), passando a soma dos contadores, e setTamanho(), passando o valor
“288”. (valor em pixels)
39. Ainda utilizando esta instância, a classe Interface_Enquete_Graficos chama os métodos
getCompLabel1(),getCompLabel2(),getCompLabel3(). Cada método recebe o valor total dos
contadores e o valor respectivo ao seu contador, calculando a porcentagem em Pixels, retornando
este valor para a classe Interface_Enquete_Graficos.
40. O usuário pressiona o botão ve rmelho do controle remoto. A Interface_Enquetes, através do método
keyPressed(), reconhece os comandos como valores “403” (vermelho).
41. Através da instancia da classe Menu_Principal, o método startXlet() é chamado. A classe
Interface_Enquete tem seu método d estroyXlet() chamado, encerrando esta tela.
42. Este caso de uso se encerra.
Fluxo Alternativo Tutorial (FA01) ref. UC04(1,48);
Precondição: Não Aplicável.
Passos:
1. O aluno seleciona o botão verde do controle remoto a opção TUTORIAL da Tela Enquete. A
Interface_Enquete, através do método keyPressed(), reconhece os comandos como valores “404”
(verde).
2. A classe Interface_Enquete executa os métodos scene.removeAll(),scene.add(iconeImg4) e
scene.repaint(),exibindo como utilizar as setas de navegação do controle rem oto.
3. O aluno seleciona o botão azul do controle remoto a opção RETORNA. A Interface_Enquete, através
do método keyPressed(), reconhece os comandos como valores “406” (azul).
4. A classe Interface_Enquete executa os métodos scene.removeAll(); scene.repaint(); Componentes().
5. O Digital Math retorna a Tela Enquete.
Este fluxo alternativo se encerra.
66

4.1.2.4.1 Mensagem

Número de ordem Identificação da mensagem Categoria Texto de mensagem


1 MSG_DESEJA CANCELAR Confirmação Você deseja cancelar?

3 MSG_ERRO Informativa Falha de Comunicação.


Atenção usuário devido...

4.1.2.5 Caso de Uso Emitir Relatório (UC06)

Caso de Uso: Emitir Relatório


Objetivo: Emitir Relatórios de Alunos Cadastrados
Atores: Administrador
Pré-condições: O usuário deverá estar loga do no sistema.
Pós-condições: O administrador visualiza o relatório de Alunos Cadastrados.
Fluxo Principal
1. Este caso de uso inicia quando o administrador seleciona no Menu (drop -down) Relatórios a
opção (submenu) usuário da Tela Principal .
2. O Digital Math - Módulo Web verifica qual foi o comando acionado pelo usuário
/pageRelatoriosUsuario e redireciona para a tela Relatórios de Usuários, onde será exibido diversos
relatórios disponíveis em links para o usuário.
3. O administrador clica no link Relatório de alunos cadastrados.
4. O Digital Math - Módulo Web verifica qual foi o método acionado pelo usuário
pageRelatorioUsuario?metodo=executarRelAlunosCadastrados e executa o método da Action
RelUsuariosAction (Controller), neste caso executarRelAlunosCadastrados() (DAO), logo em
seguida aciona o método FactoryDefault.getDAOManterUsuario.getUsuarios() que irá pegar a
conexão com o banco de dados tvdigital através do método ConexaoDB.getConnection() e realizará
a consulta do relatório na tabela usuario e retornará uma coleção de objetos do tipo PJUsuario que
irá preencher o relatório e será exibido através do método sos.write(arquivo,0,arquivo.length).
5. Este fluxo se encerra.

Fluxo Exceção (FE01) ref. UC06(4);


Precondição: Não Aplicável.
Passos:
1. O Digital Math - Módulo Web verifica através do comando if(colecaoUsuarios.size() > 0) que a
coleção de objetos PJUsuario não trouxe nenhum resultado e redireciona para a tela Relatórios de
Usuário exibindo a mensagem MSG_ERROR_RELATORIO .
2. Este fluxo alternativo se encerra.

4.1.2.5.1 Mensagem

Número de ordem Identificação da mensagem Categoria Texto de mensagem


1 MSG_ERROR_RELATORIO Informação Não existe nenhum valor neste
momento para ser exibido para
este relatório
67

4.2. Diagrama de Classes


68
69

4.3. Diagrama de Seqüência


70
71
72
73

4.4. Diagrama de ER
74

4.5. Mapeamento Objeto Relacional – MOR


75

4.6. Projeto de Banco de Dados


4.6.1. Mapeamento do Banco

Legenda:
PK = #
FK = *

USUARIO (Usu_Id#, Usu_Tipo, Usu_Nivel, Usu_Nome,Usu_Login, Usu_Senha,


Usu_IP)
PK = Usu_Id

ENQUETE (Enq_Id#, Enq_Pergunta)


PK = Enq_Id

ENQUETE_ALTER (EnqAlt_Id#, EnqAlt_Enq_Id*#, EnqAlt_Alternativa)


PK = EnqAlt_Id + EnqAlt_Enq_Id
FK = EnqAlt_Enq_Id ref Enquete

RESPOSTA_ENQUETE(ResEnq_EnqAlt_Id*#, ResEnq_Enq_Id*#,
ResEnq_Usu_Id*#, ResEnq_Data#)
PK = ResEnq_EnqAlt_Id + ResEnq_Enq_Id + ResEnq_Usu_Id + ResEnq_Data
FK1 = ResEnq_EnqAlt_Id ref Enquete_Alter
FK2 = ResEnq_Enq_Id ref Enquete
FK3 = ResEnq_Usu_Id ref Usuario

DESAFIO (Des_Id#, Des_Pergunta, Des_Opcao_Correta, Des_Explicacao)


PK = Des_Id

DESAFIO_ALTER (DesAlt_Id#, DesAlt_Des_Id* #, DesAlt_Alternativa)


PK = DesAlt_Id + DesAlt_Des_id
FK = DesAlt_Des_id ref Desafio

RESPOSTA_DESAFIO(ResDes_DesAlt_Id*#, ResDes_Des_Id*#,
ResDes_Usu_Id*#, ResDes_Data#)
PK = ResDes_DesAlt_Id + ResDes_Des_Id + ResDes_Usu_Id + ResDes_Data
FK1 = ResDes_DesAlt_Id ref Desafio_Alter
FK2 = ResDes_Des_Id ref Desafio
FK3 = ResDes_Usu_Id ref Usuario

ASSUNTO (Ass_Id#, Ass_Nivel, Ass_NomeAss)


PK = Ass_Id

EXERCICIO (Exe_Id#, Exe_Ass_Id*#, Exe_Pergunta, Exe_OpcaoCorreta)


PK = Exe_Id + Exe_Ass_Id
FK = Exe_Ass_id ref Assunto

EXERCICIO_ALTER (ExeAlt_Id#, ExeAlt_Exe_Id*#, ExeAlt_Ass_Id*#,


ExeAlt_Alternativa)
PK = ExeAlt_Id + ExeAlt_Exe_Id + ExeAlt_Ass_Id
76

FK1 = ExeAlt_Exe_Id ref Exercicio


FK2 = ExeAlt_Ass_Id ref Assunto

RESPOSTA_EXERCICIO (ResExe_ExeAlt_Id*#, ResExe_Ex e_Id*#,


ResExe_Ass_Id*#,
ResExe_Usu_Id*#, ResExe_Data#, ResExe_Porcentagem)
PK = ResExe_ExeAlt_Id + ResExe_Exe_Id + ResExe_Ass_Id + ResExe_Usu_Id +
ResExe_Data
FK1 = ResExe_ExeAlt_Id ref Exercicio_Alter
FK2 = ResExe_Exe_Id ref Exercicio
FK3 = ResExe_Ass_Id ref Assunto
FK4 = ResExe_Usu_Id ref Usuario

VIDEO (Vid_Id#, Vis_Ass_Id*#, Vid_Nome, Vid_Sinopse, Vid_DataExibicao,


Vid_HoraExibicao, Vid_Duracao)
PK = Vid_Id + Vid_Ass_Id
FK = Vid_Ass_Id ref Assunto
4.6.2. Dicionário de Dados

Tabela: Nível
Objetivos: Armazena o nível em que cada usuário está.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Nivel smallint Não S Campo identificador do nivel do usuário.
Descricao varchar(15) Não Descricao do nivel do usuário.

Tabela: Tipo
Objetivos: Armazena o tipo de cada usuário.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Tipo smallint Não S Campo identificador do tipo de usuário.
Descricao varchar (15) Não Descriçäo do tipo do usuário.

Tabela: Usuário
Objetivos: Armazena os dados de registro das entradas dos Usuários no sistema.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Usuario int Não S Campo identificador do usuário.
Id_Tipo smallint Não S S Tipo Campo identificador do tipo de usuário.
Id_Nivel smallint Não S S Nivel Campo identificador do nivel do usuário.
IP varchar (15) Não Campo que representa o local de um equipemento.
Nome varchar (100) Não Nome do usuário.
Login varchar (20) Não Login do usuário para ter acesso ao sistema .
Senha int Não Senha do usuário para ter acesso ao sistema.
77

Tabela: Assunto
Objetivos: Armazena os assuntos no sistema.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Assunto int Não S Campo identificador do assunto.
Id_Nivel smallint Não S S Nivel Nivel de cada assunto.
NomeAss varchar (50) Não Nome do assunto.

Tabela: Exercicio
Objetivos: Armazena os exercicios no sistema.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Exercicio int Não S Campo identificador do exercicio.
Id_Assunto int Não S S Assunto Campo identificador do assunto.
Pergunta varchar (450) Não Pergunta referente ao exercicio.
OpcaoCorreta smallint Não Opcao correta do execicio.

Tabela: Exercicio_Alt
Objetivos: Armazena as alternativas dos exercicios no sistema.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Exe_Alt int Não S Campo identificador da alternativa do exercicio.
Id_Exercicio int Não S S Exercicio Campo identificador do exercicio.
Id_Assunto int Não S S Assunto Campo identificador do assunto.
Alternativa varchar(100) Não Alternativas do exercicio.

Tabela: Resposta_Exercicio
Objetivos: Armazena as respostas dadas pelos usuários nos exercicios.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Exe_Alt int Não S S Exercicio_Alt Campo identificador da alternativa do exercicio.
Id_Exercicio int Não S S Exercicio Campo identificador do exercicio.
Id_Assunto int Não S S Assunto Campo identificador do assunto.
Id_Usuario int Não S S Usuario Campo identificador do usuário.
DataResolucao datetime Não S Data em que o exercício foi respondido.
Porcentagem int Não Porcentagem obtida em cada exercício.

Tabela: Enquete
Objetivos: Armazena os dados referentes a enquete.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Enquete int Não S Campo identificador da enquete.
Pergunta varchar (200) Não Pergunta referente a enquete.
Status char(1) Não Status da enquete, se está ativa (1) ou inativa (0).
78

Tabela: Enquete_Alt
Objetivos: Armazena os dados referentes as alternativas das enquetes.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Enquete_Alt int Não S Campo identificador da alternativa da enquete.
Id_Enquete int Não S S Enquete Campo identificador da enquete.
Alternativa varchar(15) Não Alternativas da enquete.

Tabela: Resposta_Enquete
Objetivos: Armazena as respostas dadas pelos usuários nas enquetes.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Enq_Alt int Não S S Enquete_Alt Campo identificador da alternativa da enquete.
Id_Enquete int Não S S Enquete Campo identificador da enquete.
Id_Usuario int Não S S Usuario Campo identificador do usuário.
Data_Resposta datetime Não S Data em que a enquete foi respondida.

Tabela: Desafio
Objetivos: Armazena os dados referentes ao desafio.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Desafio int Não S Campo identificador do desafio.
Pergunta varchar(450) Não Pergunta referente ao desafio.
OpcaoCorreta varchar (100) Não Opcao correta do desafio.
Explicacao text Não Explicação de como é resolvido o desafio.

Tabela: Desafio_Alt
Objetivos: Armazena os dados referentes as alternativas dos desafios.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Des_alt int Não S Campo identificador do desafio_alt.
Id_Desafio int Não S S Desafio Campo identificador do desafio.
Alternativa varchar(5) Não Alternativas do desafio .

Tabela: Resposta_Desafio
Objetivos: Armazena as respostas dadas pelos usuários nos desafios.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Des_Alt int Não S S Desafio_Alt Campo identificador da alternativa do desafio.
Id_Desafio int Não S S Desafio Campo identificador do desafio.
Id_Usuario int Não S S Usuario Campo identificador do usuário.
Data_Resposta datetime Não S Data em que o desafio foi respondido.
79

Tabela: Programacao
Objetivos: Armazena os dados referente a programação.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Programacao int Não S Campo identificador da programação.
Descricao varcha(450) Não Descrição da programação.
Data date Não Data que a programação foi cadastrada.

Tabela: Curiosidades
Objetivos: Armazena os dados referente as curiosidades.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Curiosidade int Não S Campo identificador da curiosidade.
Titulo varcha(100) Não Titulo da curiosidade.
Descricao text Não Descrição da curiosidade.

Tabela: Menu Principal


Objetivos: Armazena os dados referente ao menu principal.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Com int Não S Campo identificador do componente.
Componente varchar(30) Não Campo do componente do menu principal.

Tabela: Video
Objetivos: Armazena os dados referente aos vídeos.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Video int Não S Campo identificador do video.
Id_Assunto int Não S S Assunto Campo identificador do assunto.
NomeVideo varchar(100) Não Nome do video.
Sinopse text Não Breve descricao do conteudo do video.

Tabela: HorarioAula
Objetivos: Armazena os dados referente aos horários das aulas.
Campo Tipo Nulo Padrão PK Fk Tabela Origem Comentários
Id_Horario int Não S Campo identificador do HorarioAula.
Id_Video int Não S S Video Campo identificador do Video.
DataExibicao date Não S Data da exibição do video.
HoraExibicao time Não S Hora da exibição do video.
Duracao time Não Duração do video.
80

4.7. Projeto de Interface

4.7.1. Interface do Tipo Saída de Dados

4.7.1.1 Tela Menu Principal

Figura 14 – Menu Principal – Módulo Embarcado

4.7.1.2 Relacionamento com outras interfaces

A tela Menu Principal possui as funcionalidades do sistema . Através


dela o aluno pode acessar qualquer outra tela.

4.7.1.3 Lista de Comandos

Número Nome Ação Restrições

1 Desafios Exibi a interface Tela Desafio. Sempre habilitado


2 Enquete Exibi a interface Tela Enquete. Habilitado quando a
enquete estiver disponível
3 Exercícios Exibi a interface Tela Exercício. Sempre habilitado
4 Vídeos-Aula Exibi a interface Tela Vídeo-Aula. Habilitado quando a vídeo-
aula estiver disponível
5 Programação Exibi a interface Tela Programação. Sempre habilitado
6 Curiosidades Exibi a interface Tela Curiosidade. Sempre habilitado
81

4.7.2. Interface do Tipo Processamento – Desafios


4.7.2.1 Telas

4.7.2.1.1 Telas Desafio

Figura 15 – Interface Desafios – Questão e alternativas

Figura 16 - Interface Desafios – Resultado Positivo


82

Figura 17 - Interface Desafios – Resultado Negativo

4.7.2.1.2 Relacionamento com outras interfaces

A tela Desafio possui um relacionamento com a tela Menu Principal do


sistema, através da opção SAIR e relacionamento com a tela Tutorial através da opção
TUTORIAL.

4.7.2.1.3 Lista de Comandos

Número Nome Ação Restrições


1 Sair Sai da resolução do desafio e retorna a Interface Tela Sempre habilitado
Menu Principal.
2 Tutorial Exibi a interface Tela Tutorial, mostrando como Sempre habilitado
utiliza às setas de navegação do controle r emoto.
3 Novo Desafio Exibi um novo desafio Sempre habilitado
83

4.7.3. Interface do Tipo Saída de Dados - Tela Tutorial

Figura 18 - Interface Desafios - Tutorial

4.7.3.1 Relacionamento com outras interfaces

A tela Tutorial pode ser ativada a partir das telas Desafios, Enquete, e
Exercício, e possui relacionamento com a tela Menu Principal através da opção
RETORNAR.

4.7.3.2 Lista de Comandos

Número Nome Ação Restrições


1 Retornar Retorna a Interface Tela Menu Principal. Sempre habilitado
84

4.7.4. Interface do Tipo Processamento – Enquete


4.7.4.1 Telas
4.7.4.1.1 Telas Enquete – Opinião do Aluno

Figura 19 - Interface Enquete – Questão e Alternativas

Figura 20 Interface Enquete - Resultados

4.7.4.2 Relacionamento com outras interfaces

A tela Enquete pode ser ativada a partir da tela Menu Principal e


retornar ao menu principal através da opção MENU PRINCIPAL, possui
relacionamento com a tela Tutorial atravé s da opção TUTORIAL.
85

4.7.4.3 Lista de Comandos

Número Nome Ação Restrições

1 Retornar Exibi a interface Tela Menu Principal. Sempre habilitado


2 Tutorial Exibi a interface Tela Tutorial, mostrando como Sempre habilitado
utiliza às setas de navegação do controle remo to.

4.7.5. Interface do tipo processamento - Praticar Exercício


4.7.5.1 Telas

4.7.5.1 .1 Tela Exercício – Seleção de Assuntos

Figura 21 - Interface Exercícios – Seleção de Assuntos

4.7.5.1 .2 Tela Exercício - Resolução de Questão

Figura 22 - Interface Exercícios – Resolução de Questão


86

4.7.5.2 Relacionamento com outras interfaces

A tela Exercício pode ser ativada a partir da tela Menu Principal e


retorna ao menu principal atrav és da opção MENU PRINCIPAL, possui
relacionamento com a tela Tutorial através da opção TUTORIAL.

4.7.5.3 Lista de Comandos

Número Nome Ação Restrições


1 Retornar Retorna a interface Tela Menu Principal. Sempre habilitado
2 Encerrar Encerrar a resolução do Exercício e exibi a Sempre habilitado
Exercício interface Tela Resultado.
3 Tutorial Exibi a interface Tela Tutorial, mostrando como Sempre habilitado
utiliza às setas de navegação do controle remoto.

4.7.6. Interface do tipo Saída de Dados – Exercício


4.7.6.1 Telas
4.7.6.1 .1 Tela Exercício – Resultado

Figura 23 - Interface Exercícios – Resultado


87

4.7.6.1.2 Tela Exercício – Refazer Exercício

Figura 24 - Interface Exercícios – Atenção – Aluno com média acima de 60% no assunto
selecionado. Resolução não obrigatória

4.7.6.2 Relacionamento com outras interfaces

A tela Exercício Resultado e Exercício podem ser ativadas a partir da


tela Exercício, possui relacionamento com a tela Assunto, atravé s da opção
RETORNAR ASSUNTOS, relacionamento com a tela Menu Principal através da
opção MENU PRINCIPAL.

4.7.6.3 Lista de Comandos

Número Nome Ação Restrições


1 Menu Principal Retorna a interface Tela Menu Principal. Sempre habilitado
2 Retornar Assuntos Retorna a interface Tela Seleção Assuntos. Sempre habilitado
3 Resolver Questões Resolve novamente as questões do exercício Sempre habilitado
que tenha sido resolvido.
88

4.7.7. Interface do Tipo Processamento – Assistir Vídeo-Aula

Figura 25 - Interface Vídeo Aula

4.7.6.2 Relacionamento com outras interfaces

A tela Assistir vídeo-aula pode ser ativada a partir da tela Menu


Principal, possui relacionamento com a tela Sinopse, através da opção SINOPSE,
relacionamento com a tela Menu Principal através da opção MENU PRINCIPAL.

4.7.7.2 Lista de Comandos

Número Nome Ação Restrições


1 Sinopse Exibi a interface Tela Video-Sinopse, mostrado o Sempre
assunto que está sendo exibido e a próxima exibição. habilitado
2 Menu Principal Exibi a interface Tela Menu Principal. Sempre
habilitado
89

4.7.8. Interface do Tipo Saída de dados – Programação


4.7.8.1 Telas

4.7.8.1.1 Tela Programação – Vídeo – Sinopse

Figura 26 – Interface Atenção – nível do aluno inferior ao do assunto.

4.7.8.1.2 Tela Programação – Vídeo-Sinopse

Figura 27 – Interface Vídeo-Sinopse


90

4.7.8.2 Relacionamento com outras interfaces

A tela Vídeo-Sinopse pode ser ativada a partir da tela Assistir Vídeo -


Aula, possui relacionamento com a tela Menu Principal através da opção MENU
PRINCIPAL.

4.7.8.3 Lista de Comandos

Número Nome Ação Restrições


1 Assistir Aula Exibi a interface Tela Vídeo-Aula, mostrado Habilitado caso o vídeo
mostrando a aula que está sendo exibida esteja sempre exibido
2 Menu Exibi a interface Tela Menu Principal. Sempre habilitado
Principal

4.7.9. Tela do Tipo Saída de Dados – Curiosidades

Figura 28 – Interface Curiosidades – Questão e Descrição

4.7.9.1 Relacionamento com outras interfaces

A tela Curiosidades pode ser ativada a partir da tela Menu Principal.

4.7.8.2 Lista de Comandos

Número Nome Ação Restrições


1 Sair Sai da tela curiosidades e retorna a interface Sempre habilitado
Tela Menu Principal
2 Menu Exibi a interface Tela Menu Principal. Sempre habilitado
Principal
91

4.7.10. Interface do Tipo Entrada de dados – Login

4.7.10.1 Tela Login

Figura 29 – Interface Login – Módulo Web

4.7.10.2 Relacionamento com outras interfaces

A tela Login possui relacionamento com a tela Principal do sistema,


através dela o usuário tem acesso às funcionalidades do sistema.

4.7.10.3 Campos

N. Nome Descrição Valores válidos Formato Tipo Restrições


1 Login Nome individual Caract. 0-9, a-z, Até 20 Text Sempre habilitado
para cada usuário A-Z caracteres
2 Senha Senha individual Caract. 0-9, a-z, Até 20 Text Sempre habilitado
para cada usuário A-Z caracteres

4.7.10.4 Lista de Comandos

Número Nome Ação Restrições


1 Enviar Valida o login e senha e chama a interface Tela Principal Sempre habilitado
92

4.7.11. Interface do Tipo Saída de Dados

4.7.11.1 Telas

4.7.11.1.1 Tela Principal

Figura 30 – Interface Menu Principal – Módulo Web


93

4.7.11.1.2 Tela Principal – Manter Usuário

Figura 31 – Interface Menu Principal – Menu Drop Down

4.7.11.2 Relacionamento com outras interfaces


A tela Principal possui relacionamento com todas as funcionalidades
do sistema, através dela o usuário pode manter todos os tipos de dados, gerar
relatórios.

4.7.11.3 Lista de Comandos

Número Nome Ação Restrições


1 Manter Mantêm todos os tipos de dados. Sempre habilitado
2 Relatório Emiti relatórios referentes a todos os alunos Sempre habilitado
3 Configuração Configura o sistema para melhor utilizá -lo Sempre habilitado
4 TV Digital Configura algumas opções da TV Digital Sempre habilitado
5 Logout Sai do sistema Sempre habilitado
6 Assunto Mantêm todos os tipos de dados referentes aos Sempre habilitado
assuntos
7 Curiosidades Mantêm todos os tipos de dados referentes às Sempre habilitado
curiosidades
8 Desafio Mantêm todos os tipos de dados referentes aos Sempre habilitado
desafios
9 Enquete Mantêm todos os tipos de dados referentes as Sempre habilitado
enquetes
10 Usuário Mantêm todos os tipos de dados referentes aos Sempre habilitado
usuários
94

4.7.12. Interface do Tipo Entrada de Dados


4.7.12.1 Telas
4.7.12.1.1 Tela Pesquisar Usuário

Figura 32 – Interface Pesquisar Usuário

4.7.12.1.2 Tela Pesquisa Usuário – Consulta Usuário

Figura 33 – Interface Consultar Usuário


95

Figura 34 – Interface Pesquisar Usuário – Dados Pesquisados

4.7.12.1.3 Tela Pesquisar Usuário – Seleção de Usuário por Nome

Figura 35 – Interface Pesquisar Usuário – Seleção de Usuário

4.7.12.2 Relacionamento com outras interfaces

A tela Pesquisar Usuário possui relacionamento com tela Principal


através da opção CANCELAR.
96

4.7.12.3 Campos

N. Nome Descrição Valores válidos Formato Tipo Restrições


1 Digite por Escrever o tipo de Caract. 0-9, a-z, Até 20 Text Sempre
pesquisa que foi A-Z caracteres habilitado
selecionado

4.7.12.4 Lista de Comandos

Número Nome Ação Restrições


1 Localizar Localiza o usuário digitado. Sempre habilitado
2 Detalhar Detalha o usuário selecionado, mostrando todos Habilitado quando for
os dados cadastrados sobre ele. selecionado o campo X.
3 Novo Procura por um Nov usuário Sempre habilitado
4 Cancelar Cancela a opção e retorna a interface Tela Sempre habilitado
Principal

4.7.13. Interface do Tipo Entrada de Dados


4.7.13.1 Tela Dados do Usuário - Novo Usuário

Figura 36 – Interface Novo Usuário

4.7.13.2 Relacionamento com outras interfaces

A tela Dados do Usuário possui relacionamento com tela Principal


através da opção CANCELAR.
97

4.7.13.3 Campos

N. Nome Descrição Valores válidos Formato Tipo Restrições


1 Tipo Selecionar o tipo Caract. a-z, A-Z Até 20 radio Sempre habilitado
de usuário caractere
3 IP Ip do usuário pra Text Sempre habilitado
ele ter acesso a
TV digital
Nome Digita o nome do Caract. a-z, A-Z Até 20 Text Sempre habilitado
usuário para ser caractere
cadastrado

4.7.13.4 Lista de Comandos

Número Nome Ação Restrições


1 Salvar Mantêm todos os tipos de dados. Sempre habilitado
2 Cancelar Emiti relatórios referentes a todos os alunos Sempre habilitado

4.7.14. Interface do Tipo Saída de Dados


4.7.14.1 Tela Dados Usuário – Dados Usuário Administrador

Figura 37 – Interface Dados do Usuário Administrador

4.7.14.2 Relacionamento com outras interfaces

A tela Manter Usuário possui relacionamento com todo a com a tela


Principal através da opção CANCELAR.
98

4.7.14.3 Campos

N. Nome Descrição Valores válidos Formato Tipo Restrições


1 Código Código do usuário Caract. a-z, A-Z Até 20
caractere
2 Tipo Selecionar o tipo Caract. a-z, A-Z Até 20 radio Sempre habilitado
de usuário caractere
3 Nível Selecionar o nível Caract. a-z, A-Z Até 20 radio Sempre habilitado
do usuário caractere
4 IP Caract. a-z, A-Z Até 20 Text Sempre habilitado
caractere
5 Nome Digita o nome do Caract. a-z, A-Z Até 20 Text Sempre habilitado
usuário para ser
caractere
cadastrado
6 Login Login do usuário Caract. a-z, A-Z Até 20 Text Sempre habilitado
caractere
7 Senha Senha do usuário Caract. a-z, A-Z Até 20 Text Sempre habilitado
caractere
8 Confirmar Confirmar a senha Caract. a-z, A-Z Até 20 Text Sempre habilitado
Senha do usuário
caractere

4.7.14.4 Lista de Comandos

Número Nome Ação Restrições


1 Salvar Salva os dados alterados Sempre habilitado
2 Cancelar Cancela a opção e retorna ao interface Tela Sempre habilitado
Principal
3 Excluir Exclui o usuário. Sempre habilitado

4.7.15. Tela Dados Usuário – Dados Usuário Aluno

Figura 38 – Interface Dados do Usuário Aluno


99

4.7.15.1 Relacionamento com outras interfaces

A tela Manter Usuário possui relacionamento com todo a com a tela


Principal através da opção CANCELAR.

4.7.15.2 Campos

N. Nome Descrição Valores válidos Formato Tipo Restrições


1 Código Código do usuário Caract. a-z, A-Z Até 20
caractere
2 Tipo Selecionar o tipo Caract. a-z, A-Z Até 20 radio Sempre habilitado
de usuário caractere
3 Nível Selecionar o nível Caract. a-z, A-Z Até 20 radio Sempre habilitado
do usuário caractere
4 IP Caract. a-z, A-Z Até 20 Text Sempre habilitado
caractere
5 Nome Digita o nome do Caract. a-z, A-Z Até 20 Text Sempre habilitado
usuário para ser
caractere
cadastrado
6 Login Login do usuário Caract. a-z, A-Z Até 20 Text Sempre habilitado
caractere

4.7.15.3 Lista de Comandos

Número Nome Ação Restrições


1 Salvar Salva os dados alterados Sempre habilitado
2 Cancelar Cancela a opção e retorna ao interface Tela Sempre habilitado
Principal
3 Excluir Exclui o usuário. Sempre habilitado
4 Aplicar como Aplica para o usuário aluno uma senha padrão Sempre habilitado
senha padrão caso ele solicite.
100

4.7.16. Interface do Tipo Relatório


4.7.16.1 Tela
4.7.16.1.1 Seleção Tipo de Relatório

Figura 39 – Menu Drop Down – Seleção de Relatório

Figura 40 – Relatórios Disponíveis


101

4.7.16.1.2 Relatório de Alunos Cadastrados

Figura 41 – Interface Relatório

4.7.16.2 Relacionamento com outras interfaces

A tela Relatório possui relacionamento com todo a com a tela Principal


através da opção CANCEL.

4.7.16.3 Campos

N. Nome Descrição Valores válidos Formato Tipo Restrições


1 Usuários Total de alunos Caract. a-z, A-Z Até 20 Sempre
Cadastrados cadastrados caractere
habilitado
2 Assuntos Total de assuntos Caract. a-z, A-Z Até 20 Sempre
Cadastrados cadastrados caractere
habilitado
3 Desafios Total de desafios Caract. a-z, A-Z Até 20 Sempre
cadastrados caractere
habilitado
Qtd de exercícios Total de exercícios Caract. a-z, A-Z Sempre
por assunto por assunto
habilitado
102

4.7.17. Interface do Tipo Mensagem


4.7.17.1 Telas
4.7.17.1.1 Tela de Mensagem – Mensagem de Sucesso
4.7.17.1.1.1 Confirmar Exclusão

Figura 42 – Mensagem de Exclusão

4.7.17.1.1.2 Exclusão com Sucesso

Figura 43 – Confirmação da Exclusão


103

4.7.17.1.1.3 Usuário Cadastrado com sucesso

Figura 44 – Mensagem confirmando cadastro do usuário

4.7.17.1.1.4 Alteração com Sucesso

Figura 45 – Interface Dados do Usuário Administrador


104

4.7.17.1.1.5 Senha padrão

Figura 46 – Mensagem solicitando confirmação de senha padrão

4.7.17.1.2 Tela Mensagem – Mensagem de Erro

4.7.17.1.2.1 Dados Incorretos

Figura 47 – Mensagem Dados incorretos

Figura 48 – Mensagens de erro


105

Figura 49 – Mensagem de erro – Nível do administrador incorreto

Figura 50 – Mensagem de erro


106

Figura 51 – Mensagens de erro

Figura 52 – Mensagens de erro


107

4.7.17.1.2 .2 Registro não Encontrado

Figura 53 – Mensagens de erro – Registro não Encontrado

4.7.17.1.2.3 Campo de Pesquisa em Branco

Figura 54 – Mensagens de erro - Campo de Pesquisa em Branco

4.7.17.1.2.4 Falha de Comunicação

Figura 55 – Mensagens de erro – Módulo Embarcado – Falha na comunicação


108

4.7.18. Aspectos Ergonômicos

4.7.18.1 Elementos Textuais de usabilidade

A tipografia empregada na interface do Portal de Usabilidade,


apresentado na próxima seção, tem como base as aplicações da SKY (2006), televisão
por assinatura via satélite, e da BBCi (2006). Mediante uma análise tipográfica das
aplicações veiculadas pela programadora de sat élite brasileira, é possível perceber que
seus elementos textuais fazem uso de tipos que muito se assemelham com a variante
condensada da família de tipos Frutiger, do designer suíço Adrian Frutiger (Frutiger
2005). Já a emissora britânica sugere o uso dos tipos Gill Sans, de Eric Gill (Gill
2005), e Tiresias, projetada pelo núcleo de pesquisas liderado pelo Dr. John Gill, do
Royal National Institute for the Blind (Tirésias 2005). O quadro abaixo, em escala
1:2, traz exemplos de tipos destas famílias em cor pos 36, 24 e 18 pontos.

Figura 56 - Famílias de tipos utilizados pelas emissoras BBCi e SKY.

É importante ressaltar que a fonte Tiresias foi projetada pelo Royal


National Institute for the Blind para que tivesse caracteres fac ilmente distinguíveis
uns dos outros. Segundo o instituto britânico, “o projeto foi realizado com atenção
específica às pessoas com deficiências visuais, com a filosofia de que um bom projeto
para deficientes visuais é um bom projeto para todos” (Tirésias 2005). Devido a essas
características, o tipo Tiresias foi adotado como fonte padrão para as aplicações em
109

MHP e, por essa razão, já vem sendo implementada nos set -top boxes de diversos
fabricantes europeus.
Em seu STYLEGUIDE (BBCi 2005), a BBC traz sete i mportantes
considerações a respeito da legibilidade em monitores de televisão. Segundo a
emissora britânica:

1. O corpo dos textos, na maioria dos casos, não deve usar tipos menores que
24 pontos;
2. Nenhum texto, em qualquer circunstância, deve ter tipos menor es que 18
pontos;
3. Textos claros em fundos escuros são ligeiramente mais legíveis na tela;
4. Textos na tela necessitam de entrelinhas maiores que textos impressos;
5. Quanto tecnicamente possível, o espaço entre os caracteres deve ser
aumentado em 30%;
6. Uma tela completa de textos deve conter o máximo de 90 palavras
aproximadamente;
7. Os textos devem ser divididos em pequenos blocos para que possam ser
lidos instantaneamente;

Dentro das características de qualidade que foram levadas em


consideração no projeto, deu -se uma atenção maior ao quesito usabilidade, por se
tratar do tema principal do produto. Podem -se citar algumas questões envolvidas no
desenvolvimento que tem relação com a usabilidade, como, por exemplo, a interface
do protótipo deveria apresentar mensage ns compreensíveis para o usuário final em
casos de falha de comunicação ou em situações onde é necessário ao usuário aguardar
mais do que 10 segundos. Um exemplo é a comunicação do usuário com o servidor,
onde deve ser exibida uma mensagem informativa de c onfirmação ou falha na
comunicação.
110

4.7.18.2 Código de Cores

Com o objetivo de otimizar os botões coloridos – destinados a funções


específicas das aplicações e presentes nos controles remotos dos três padrões de TV
digital interativa – o projeto da interface do portal faz uso de um código cromático
associado diretamente às cores desses botões. Assim, as quatro seções previstas para o
portal – Retorna, Tutorial, Curiosidades e Menu Principal – são associadas
respectivamente às cores vermelho, verde, a marelo e azul, como ilustra o quadro
abaixo.
Do ponto de vista do usuário, a principal vantagem dos botões
coloridos é o acesso direto e simplificado às funções a eles associadas. Assim, a
manutenção de um código de cores constantemente visível na tela rev ela-se um
elemento estratégico de apoio ao processo de memorização dessas funções.
Um ponto a ser seriamente considerado no processo de inclusão digital
é a questão da acessibilidade por usuários portadores de deficiências; sejam elas
físicas, visuais, auditivas, intelectuais ou mentais. No que diz respeito às deficiências
visuais, a interface apresentada busca associar forma aos botões coloridos. A
relevância de tal proposta mostra -se evidente no momento em que usuários com
daltonismo são levados em consid eração. As imagens no quadro a seguir simulam
respectivamente a visão de um indivíduo normal, de portadores do tipo mais comum
de daltonismo e de indivíduos com a variante mais rara da doença.

Figura 57 - Visão de indivíduos normais e de portadores de daltonismo.

Frente às imagens apresentadas, é até constrangedor falar em


acessibilidade tendo um controle remoto com botões que exercem funções distintas –
embora não sejam as únicas – que são percebidas somente mediante sua info rmação
cromática. Por esse motivo, optou -se por duas resultantes possíveis: a primeira, pelo
uso de legendas em cada botão, auxiliando a identificação da funcionalidade; e a
111

segunda, pela utilização da seqüência padrão de cores, estabelecida pela PAL (Phas e
Alternative Line ou Linha Alternativa de Fase) padrão no formato de televisão
britânico.

4.7.18.3 Interface de Entrada – TV digital

Telespectadores utilizam unidades de controle remoto (em alguns casos


teclados extensos) para fazer escolhas dentro dos serviços de TV interativos. Uma boa
navegação ocorre quando se provê uma interface de usuário que possa ensinar
instintivamente a espectador como realizar as escolhas certas apertando os botões
certos.
Em um mundo ideal todos os espectadores teria m os mesmos controles
disponíveis para eles, as interfaces poderiam ser desenvolvidas em um idioma visual
unificado. Porém controles diferem enormemente entre plataformas.
Vários grupos chaves funcionais são geralmente disponibilizados,
como:
 Botões coloridos em seqüência padrão (Vermelho, Verde, Amarelo e Azul);
 Setas de navegação;
 Teclado numérico;

Figura 58 – Modelos de Controles-Remotos utilizados pela tecnologia TVDigital


112

4.7.18.4 Comunicabilidade
Esta seção diz respeito às formas de comunicação do sistema para com
o usuário.

4.7.18.4.1 Convenções utilizadas


Símbolo Aspectos Exemplo
Objetivo Funcionalidade
Ergonômicos
Campos Localizado em
* obrigatório
s
Sinalização. alguns campos do
sistema Web
Nome*

Normalmente
Selecionar, em um
Setas de localizado ao lado do
agrupamento,
navegação agrupamento de
determinada opção.
opções.
Aciona comandos
Localizado ao lado
Acionar selecionados. Possui a
do agrupamento de
comandos mesma funcionalidade do
opções, normalmente
selecionad botão Enter,
entre setas de
os comparando-se a um
navegação.
teclado de computador
Realizam funções
personalizadas de
importância no sistema
Localizado, por
Botões As funções mais
padrão, sempre no
Coloridos importantes são
nível inferior da tela
destinadas aos botões da
extremidade (vermelho e
azul)

4.7.18.4.2 Mensagens
Tipo Objetivo Funcionalidade Aspectos Ergonômicos
Será exibida em caixa de
Alerta Comunica falha na Exibida após falha na diálogo com um símbolo de
execução de alguma tentativa de conexão com a alerta (um triângulo na cor
funcionalidade base de dados amarela com um sinal de
exclamação dentro.
Deve ser exibida após o
Erro sistema fazer qualquer
Comunicar que algo não Será exibida na cor vermelha na
verificação depois do
está adequado/correto. parte superior da tela.
comando SALVAR ser
executado.
Será exibida em caixa de
Deve ser exibida quando há
Solicitar confirmação diálogo com um símbolo de
tentativa de exclusão de
Confirm do usuário sobre alguma alerta (um triângulo na cor
algum dado, ou
ação ação vital sobre o amarela com um sinal de
cancelamento de alguma
sistema interrogação dentro, oferecendo
funcionalidade
as opções sim e não.
113

4.7.19. Projeto Navegacional


4.7.19.1 Sistema WEB

Figura 59 – Modelo Navegacional – Módulo Web


114

4.7.19.2 Sistema TV Digital

Figura 60 – Modelo Navegacional – Módulo Embarcado


115

5. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS

A grande contribuição deste trabalho de conclusão d e curso está no estudo e


recomendação de:

1. Estudo sobre interfaces educacionais em ambiente de TVD;


2. Classificação de interatividade para ambientes de TV Digital;
3. Metodologia de desenvolvimento de softwares educacionais para ambiente de TV digital.

Muito estudo ainda resta ser feito, especialmente os testes de usabilidade e a


prova na prática, dos conceitos utilizando a metodologia de desenvolvimento das
interfaces.

Acredita-se que estas contribuições são dinâmicas e os novos estudos que


virão irão refinar estas listas, aprimorando-as e nos dando uma perspectiva cada vez
mais clara do comportamento do usuário no cenário brasileiro, no cenário mundial
dentro de novos ambientes educacionais.

Foi apresentada neste trabalho uma ferramenta de apoio a EAD via tele visão
digital interativa e algumas considerações sobre sua aplicabilidade educacional.
Foram discutidas possibilidades para exibição de material de apoio ao aluno e
exibição de exercícios visando auto-avaliação por meio desses aplicativos. É
importante observar que este tipo de aplicativo não é auto-suficiente, ou seja, deve ser
incorporado a outros recursos de aprendizagem . A simples exposição dos alunos às
informações desconexas, não gera aprendizagem e muito menos educação, pois a
educação é um complexo processo que supõe intencionalidade [SIL05].
116

Assim, torna-se importante o uso efetivo da TV digital pelos próprios sujeitos


envolvidos no processo de ensino -aprendizagem: o professor e o aluno. Segundo
[AMA03] “a educação para o uso da TV Digital Interat iva encontra sua máxima
expressão quando professores e alunos têm a oportunidade de criar e desenvolver
através dos meios suas próprias mensagens. A expressão através da TV interativa,
como estratégia motivadora e desmistificadora, requer, portanto, não ap enas decifrar a
linguagem da comunicação, mas sim servir -se dela”.

É importante lembrar que a introdução da TV digital interativa transfere o


olhar do telespectador, que deixará de ser um receptor passivo e terá a possibilidade
de interagir com os program as que está assistindo. Por este motivo é que a TV digital
é vista como um novo meio didático e a possibilidade de uso educacional desta nova
tecnologia cria a necessidade de formar professores que sejam capazes de
compreender os processos e criar novas me todologias. Além disso, para um trabalho
efetivo no uso da TVDi no espaço educativo é preciso antes de tudo conhecer, criar
propostas e explorar da melhor forma as oportunidades de ampliar o acesso e a
socialização dos conhecimentos [AMA03] .

Neste contexto, considerar as possibilidades e as primeiras experiências no uso


da TVDi em contextos educacionais nos garante perceber a grande amplitude de
impacto social e educativo que uma nova plataforma de comunicação exercerá quando
se tornar mídia de massa. O ciberespaço e a TV interativa são fatos que coexistem
lado a lado, inseparáveis e inevitáveis. Nossa obrigação é nos organizar para tal
mudança, entendendo os processos e criando metodologias. Assim, os cursos de
formação de professores precisam incluir em s eus currículos discussões sobre estas
questões, preparado os futuros profissionais que estarão atuando e contribuindo para a
inclusão de seus alunos neste processo ( SIL05).

Com relação ao desenvolvimento de aplicativos de apoio a EAD via TVDi,


podem ser analisados os desenvolvimentos de chats e fóruns para serem utilizadas
pelos alunos para troca de experiências sobre o aprendizado por meio da TVD.

Como trabalhos futuros, sugerimos a expansão do sistema, não apenas para


matemática, mas para todas as mat érias; a criação de fórum de discussão entre alunos
117

e professores utilizando canal de retorno característico da TVDi ; e chats para permitir


troca de mensagens em tempo real entre os participantes do processo de aprendizado.
118

6. REFERÊNCIAS BIBLIOGRÁFICAS

[AMA03] AMARAL, S. F. A TV Digital Interativa no Espaço Educacional . Jornal


da Unicamp, set. de 2003. Disponível em:
<http://www.unicamp.br/unicamp/unicamp_hoje/ju/setembro2003/ju229pg2b.html>.
Consultado na Internet em maio de 2009.

[ANT] Consultado na Internet em 19 de junho de 2009.


http://www.antoniopassos.pro.br/blog/?p=177

[CUN08] CUNHA, José Mauro Mettrau Carneiro da, TV DIGITAL: DESAFIO OU


OPORTUNIDADE, Disponível em:
<http://www.bndes.gov.br/conhecimento/relato/tv_digit.pdf>, Acesso em 02 de
setembro de 2008.

[DAV] Digital Áudio-Video Council. Consultado na Internet em 15 de janeiro de


2004. http://www.davic.org

[DVI] Digital Vídeo Broadcasting. Consultado na Internet em 15 de janeiro de 2004.


http://www.dvb.org
119

[DSC] Consultado na Internet em 29 de junho de 2009.


http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/servlet/html/intro.htm

[GAM00] GAMMA, Erich. Padrões de Projeto: soluções reutilizáveis de software


orientado a objetos. Bookman: Porto Alegre, 2000

[GAR85] GARDNER, H. Frames of mind: The theory of multiple intelligences .


New York: Basic Books Inc,1985

[GRA] Consultado na Internet em 15 de janeiro de 2004.


http://graphs.ucpel.tche.br/tvdi/OficinaGingaJ -Parte2.pdf

[GAW03] GAWLISNSKI, Mark. Interactive Television Production . Oxford:Focal


Press, 2003.

[GOS03] GOSCIOLA, Vicente. Roteiro para as novas mídias. São Paulo: Ed.
Senac, 2003, p. 71

[HAV]Home Áudio-Video Council. Consultado na Internet em 15 de janeiro de 2009.


http://www.havi.com

[HEN] Consultado na Internet em 15 de abril de 2009.


http://www.henry.eti.br/pagina.php?IdPagina= 117

[IBG] IBGE, 2002, Disponível em


<http://www.ibge.gov.br/home/estatistica/populacao/trabalhoerendimento/pnad2003/c
oeficientebrasil.shtm>, Acesso em 14 março 2008.

[JOH97] JOHNSON, Steven. Interface culture: how new technology transforms


the way we create and communicate . Rio de Janeiro: J. Zahar, 1997.

[JAV] Consultado na Internet em 15 de janeiro de 2009.


http://www.javafree.org/artigo/871477/
120

[KUR 02] KURNIAWAN, Budi. Java para Web com Servlets, JSP e EJB. Rio de
Janeiro: Ciência Moderna, 2002.

[MED04] MEDEIROS, Ernani Sales de. Desenvolvendo software com UML 2.0:
definitivo. São Paulo: 2004.

[MAC] Consultado na Internet em 23 de janeiro de 200 9.


http://www.macoratti.net/08/06/asp_m vc1.htm

[MHP] MHP Interactive. Consultado na Internet em 5 de dezembro de 200 8.


http://www.mhp-interactive.org

[RAN04] RANGEL, Alexandre. MySQL – Projeto Modelagem e Desenvolvimento


de Banco de Dados. Copyright. Atlas, 2004

[SIL05] SILVA, M.R.C., VIEIRA, M.C.A., MARCONATTO, S.C. Uma análise


sobre a produção de conteúdo e a interatividade na TV digital interativa . Anais
do IV Seminário de Gestão do Conhecimento e Tecnologia da Informação e I
Encontro do Conhecimento em Educação e Tecnologia da Informação, UNICAMP -
Campinas: 2005.

[TAU05] TAURION, Cezar. Software embarcado: oportunidades e potencial de


mercado Rio de Janeiro: Brasport, 2005

[DTV] Digital Television. Consultado na Internet em 3 de novembro de 200 8.


http://www.fcc.gov

[TVI] Televisão Interactiva. Consultado na Internet em 23 de janeiro de 200 9.


http://pwp.netcabo.pt

[XLE] XleTView. Consultado na Internet em 15 de dezembro de 200 8.


http://sourceforge.net/projects/xletview/
121

[UNI] Consultado na Internet em 29 de junho de 2009.


inf.unisul.br/~ines/workcomp/cd/pdfs/2507.pdf

[WIK] Wikipédia. Consultado na Internet em 29 de junho de 2009.


http://pt.wikipedia.org/wiki/Modelos_ciclo_de_vida#Modelo_em_Cascata
122

ANEXOS