18
Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan

Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

Embed Size (px)

Citation preview

Page 1: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

Projeto Ginga Hiper- Aplicação / Componentes

Concepção / Plano / Cronograma / Conteúdo Curso Pipa

- Carlos E. Machado / Natan V. Zeferino

Page 2: 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

Page 3: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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

Page 4: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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

Page 5: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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.

Page 6: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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...)

Page 7: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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)

Page 8: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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)

Page 9: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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)

Page 10: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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

Page 11: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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

Page 12: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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

Page 13: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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– ...

Page 14: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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):

Page 15: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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.

Page 16: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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.

Page 17: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

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...

Page 18: Projeto Ginga Hiper - Aplicação / Componentes Concepção / Plano / Cronograma / Conteúdo Curso Pipa - Carlos E. Machado / Natan V. Zeferino

FIM