Projeto Ginga Hiper
- Aplicação / Componentes
Concepção / Plano / Cronograma /
Conteúdo Curso Pipa
- Carlos E. Machado / Natan V. Zeferino
Concepção
•
•
•
•
•
•
•
•
Estudar Tecnologia
Definir Arquitetura do Software
Estrutura da Interface
Abrir e Salvar Projeto
Exportar
Abas Propriedades e Eventos
Carregar os componentes
Componentes
Plano
•
•
•
•
•
•
•
Introdução
Escopo
Justificativa
Exclusões
Fatores críticos de sucesso
Riscos
Desenvolvimento
– Identificação do projeto
– Definição da equipe
– Detalhamento das Tarefas
Plano - Desenvolvimento
• Identificação do Projeto
– Nome : Ginga Hiper
• Definição de Equipe
– “só para ter um direcionamento de funções necessárias ao
trabalho, para que caso estejamos saindo do foco
possamos olhar para isso e retomar a linha correta”
– Gerente : Ambos
– Analista : Ambos
– Desenvolvedor : Ambos
• Detalhamento de Tarefa
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Benchmark
– Olhar os softwares indicados pelos orientadores,
levantar características desejadas relacionadas ao
nosso software
– Produto : documento de texto
• Estudar Tecnologia
– Ler tutoriais, “hello world”, dissertações.
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Definir arquitetura do software
– Pesquisar ( alguns frameworks , api de interface
gráfica, swing, jgoodies, desenvolvimento web )
• Listar possibilidades de framework
– Implementar e testar
• Fazer o “hello world“
• Tentar fazer algumas funcionalidades básicas da nossa
aplicação (tipo flexinha, arrastar...)
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Estrutura da Interface
– Definir (pensar na parte de design e usabilidade,
ex: três painéis - top left, right -, paletas,
maximixar, minimizar...)
– Implementar (implementar telas, como uma foto,
apenas o esqueleto, sem função)
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Abrir e Salvar Projeto
– Definir o Meta-Modelo (criar um documento de texto definindo a
estrutura do meta-modelo, ex: se usarmos tags, definir quais existirão
- <componente>, <ligação>... - outra possibilidade, bastante
interessante, é tentar serializar o painel central com todos os objetos
filhos, dessa forma ao carregar seria apenas “dar um cast” desse
painel e colocá-lo na posição)
– Salvar (varrer a tela e salvar suas características em um xml, ou a cada
alteração da tela ir salvando o xml em memória, e depois apenas
gerar o arquivo - pensar no salvar do word, manual ou de tempos em
tempos ou a idéia de serialização)
– Abrir (ler arquivo xml e criar os objetos conforme suas definições
contidas no arquivo ou idéia de serialização)
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Exportar
– Definir / mapear componentes java com o relativo componente da
linguagem destino (ex: JPanel – Swing, para “Panel” - JavaDTV -/ NCL,
de preferência javaDTV, acreditamos que aqui estaremos quase que
implementando um GWT (java to javascript X java to javadtv), sabendo
que a dificuldade disso é grande, a solução é reduzir ao máximo o
escopo, ou seja, os componentes possíveis de serem usados, por
exemplo nada de Thread, Maps, Componentes 3D...)
– Implementar exportação - pegar o arquivo "traduzir" e gerar o arquivo
final na linguagem destino, pronto para ser rodado no viewer
(lembrar que podemos testar em algum viewer existente: composer,
ginga-live, algum de javadtv, lua, ou no do browser-Aloysio)
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Aba Propriedades e Eventos
– Carregar as propriedades do componente selecionado (colocar os
labels e os campos a serem setados conforme seus tipos - definidos
em arquivo ou conforme classe, ex: list - combo, string - campo
texto...)
– Salvar mesmo que em memória os valores alterados / setados
• Carregar os componentes ( apenas na paleta )
– Ler o diretório de componentes, listar os arquivos pela extensão
definida para o componente, verificar ou apenas tratar componentes
que não estão no formato adequado ( provavelmente apenas um “try
catch” vai solucionar)
– Colocar os ícones dos componentes na paleta de componentes
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Definir e implementar interações do usuário com o
componente na área de desenvolvimento
– Carregar a estrutura do objeto ( suas propriedades, a serem carregadas para a
paleta de propriedades e alteradas pelo usuário ) ao colocar ele na área
– Arrastar componente pela tela ( salvando sua posição pela tela )
– Arrastar para fora e para dentro da área de desenvolvimento, tirando ou
colocando o componente em desenvolvimento
– Linkar componentes ( ao soltar o botão do mouse, terminando o link, irá abrir
a paleta de eventos focando no evento de link editado ou novo ) - ao mover
componentes o link (flecha) deve se mover.
– Ao clicar no link fazer a mesma função anterior
– O link deve ter uma representação de sentido ( daqui pra cá - flecha )
– Ao clicar ou outra ação em um componente na área central mostrar a paleta
com suas propriedades
Plano – Desenvolvimento –
Detalhamento das Tarefas
• Definir Tela de posição do componente na tela da TV
– Mostrar como o componente ficaria na tv, derrepente não o componente
final, mas um ícone representativo e seu tamanho
– Essa é uma tarefa possível de ser cortada do escopo
• Componentes
– Olhar softwares indicados pelos orientadores para entender funcionamento
ou idéia de componentização, plugin, carregamento de componentes,
integração com aplicação ...
• produto : documento de texto
– Definir Documento ( especificação )
– Definir Conjunto Modelo de Classes a serem utilizadas obrigatoriamente na
implementação de um componente ( idéia de framework )
– Criação de um componente de validação do modelo
Cronograma
• Outubro/Novembro : 8 horas semanais
• Restante :
– 20 horas semanais (Carlos)
– 16 horas semanais (Natan)
• Agenda ( Dia - Tarefa - Status )
– 06/10 - Concepção/Plano/Cronograma Concluído
– 07/10 - Reunião 1 – Em andamento
– 08/10 - Projetos 1 - Resumo TCC – Pendente
– ...
Conteúdo Curso Pipa
• 1) Telas onde tem um texto e imagem, como fazer
proceder no NCL, melhor incluir dois componentes
(texto e imagem), ou apenas um compenente que
chame um arquivo HTML?
– Para fazer um conteúdo digital idêntico ao ppt proposto,
um único arquivo html, resolveria. Nessa idéia a questão
de componentes não entraria.
– Porém, se pensarmos em vídeo, seus devidos controles e
componentes, só seria possível com ncl (ou demais):
Conteúdo Curso Pipa
– (NCL) Poderia ter apenas um componente com opções de
configuração de texto, imagem, vídeo, áudio, links, botões,
como posição, início, término, ação ( do link )...
– (JavaTV) Xlet (semelhante a applet). Programaria em java.
Para fazer o ppt, poderia ser basicamente um xlet, porém
não tem componentização nisso. Se pensarmos em
componentização, já vemos a dificuldade de comunicação
entre um xlet e outro.
– (Lua) Não Pesquisado. Porém deve ter grande controle,
assim como java.
Conteúdo Curso Pipa
– Obs: Questão principal: como seria criado um componente
e transformado em código final. Por exemplo o
desenvolvedor de componentes, vai fazer o ppt proposto,
como se fosse uma aplicação java swing, e depois como
iremos gerar o código correspondente, ou ele vai ter que
desenvolver em ncl, se for, como ele vai fazer uma
interface gráfica legal.
Conteúdo Curso Pipa
• 2) Ao chamar um vídeo em uma janela, poderemos
realizar controle sobre a programação corrente e
sobre o vídeo em questão, ou seja, é possível realizar
pausa, seguir, avançar, retroceder, etc, teremos que
programar isso ou já existe em NCL?
– Não sabemos a princípio se existe em NCL, nem em
qualquer outra linguagem. No Xlet vimos alguns pacotes
para controle de mídia.
– Por fim, vamos pesquisar exemplos práticos, código...
FIM
Download

TCC