protÓtipo de um diÁrio de classe em...
TRANSCRIPT
![Page 1: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/1.jpg)
PROTÓTIPO DE UM DIÁRIO DE CLASSE EM DISPOSITIVOS MÓVEIS UTILIZANDO J2ME
Fabiano Rosa
Marcel Hugo - Orientador
![Page 2: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/2.jpg)
Roteiro da apresentação
� Introdução� Objetivos� Fundamentação Teórica� Desenvolvimento� Conclusão � Demonstração
![Page 3: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/3.jpg)
Introdução
� Expansão do mercado de telefonia móvel.
� Avanço da tecnologia wireless nos celulares
� Tecnologia Java para o desenvolvimento de aplicações em dispositivos móveis
� Ferramenta para auxiliar o professor nas atividades escolares do dia-a-dia
![Page 4: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/4.jpg)
Objetivos
� Construir um protótipo para gerenciar e monitorar a frequência e as notas dos alunos na tecnologia J2ME, em que o mesmo seja executado em um aparelho celular
� Utilizar e validar os recursos da tecnologia Java em telefones celulares
� Executar uma aplicação em um telefone celular interagindo com um servidor de aplicações
� Efetuar o sincronismo entre os dados registrados no celular e os dados residentes em um servidor de aplicação
![Page 5: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/5.jpg)
Fundamentação Teórica
� Diário de Classe� Java 2 Micro Edition (J2ME)� Java 2 Enterprise Edition (J2EE)� Web Services� Padrões de Projeto
![Page 6: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/6.jpg)
Diário de Classe
� Documento oficial da instituição de ensino� Tem por finalidade registrar o histórico dos
acadêmicos em sala de aula� Frequência do acadêmico� Notas das avaliações� Observações sobre o rendimento escolar
� Os registros obedecem regras definidas pelo Regimento Geral da FURB
![Page 7: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/7.jpg)
Java 2 Micro Edition (J2ME)
� Especificação padrão para a inserção e execução de aplicações Java em dispositivos móveis
![Page 8: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/8.jpg)
Java 2 Enterprise Edition (J2EE)� Especificação padrão para produção de aplicações
corporativas seguras, escaláveis e com alta disponibilidade� Servidor de aplicações J2EE provê diversos serviços e
componentes� Utilização de Enterprise Java Beans (EJB) como componentes
de negócio
![Page 9: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/9.jpg)
Web Services
� Padrão de computação distribuída para disponibilizar componentes de software como serviços
� Utilização do protocolo Simple Object Access Protocol (SOAP) para troca de mensagens
� Mensagens são estruturadas em XML
![Page 10: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/10.jpg)
Padrões de Projeto (Design Patterns)
� Soluções testadas e aprovadas para facilitar o desenvolvimento de sistemas
� Auxiliam na reutilização e documentação dos sistemas
� Padrões utilizados no projeto:� Model-View-Controller (MVC)� Facade� Singleton
![Page 11: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/11.jpg)
Desenvolvimento
� Requisitos� Especificação� Implementação � Operacionalidade� Resultados e Discussão
![Page 12: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/12.jpg)
Requisitos
� Funcionais:� Registro da frequência dos alunos� Registro das notas das avaliações aplicadas aos alunos� Consulta do percentual e total de ausência dos alunos nas
aulas� Configuração de uma fórmula para calcular a média final
das avaliações dos alunos� Manutenção das atividades realizadas em aula pelo
professor
� Não funcionais:� Utilização de XML e SOAP para troca de mensagens entre
o servidor e a aplicação cliente� Prover a interface com o usuário no dispositivo móvel e no
browser WEB� Meio de comunicação seguro entre o cliente e o servidor
![Page 13: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/13.jpg)
Especificação
� Ferramenta de modelagem UML Enterprise Architect
� Casos de uso� Diagrama de atividades � Diagrama de classes� Diagrama de sequência� Diagrama de implantação
![Page 14: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/14.jpg)
Ferramenta de modelagem UML Enterprise Architect
![Page 15: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/15.jpg)
Casos de uso
![Page 16: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/16.jpg)
Diagrama de Atividades
![Page 17: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/17.jpg)
Diagrama de Classes (Modelo Conceitual)
![Page 18: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/18.jpg)
Diagrama de Sequência
![Page 19: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/19.jpg)
Diagrama de Implantação
![Page 20: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/20.jpg)
Implementação
� Ferramentas e plugins� Plataforma Eclipse� Plugin EclipseME� Plugin JBoss-IDE� J2ME Wireless Toolkit
![Page 21: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/21.jpg)
Implementação
� Componentes e Bibliotecas� APIs e componentes de interface gráfica do J2ME� kSOAP2 e kXML� HTTPs com certificado digital� Autenticação do tipo Basic para o Web Service� Geração de analisadores léxicos e sintáticos em
Java, para o cálculo da expressão matemática da fórmula da média final
![Page 22: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/22.jpg)
Implementação(Design Patterns)
� MVC - Possibilitou separar as responsabilidades e funcionalidades dos componentes da aplicação em suas respectivas camadas
cd Modelo de Classes
v iew
+ AtividadeForm
+ DetalhesAlunoForm
+ Dialog
+ DialogListener
+ ErrorScreen
+ InfAusenciaAlunoForm
+ ListaAlunoForm
+ ListaAtividadesAulaForm
+ ListaAvaliacaoForm
+ ListaDataAulaForm
+ ListaMatriculaAlunoForm
+ ListaTurmaForm
+ LoginForm
+ MainForm
+ MediaFinalAlunoForm
+ ProgressForm
+ RegistroAvaliacaoForm
+ RegistroFrequenciaAulaForm
+ SubForm
+ ProgressListener
MIDlet
controller::DiarioEletronicoMidlet
+ DiarioEletronicoMidlet()+ startApp() : void+ pauseApp() : void+ destroyApp(boolean) : void+ exibirMainForm() : void+ efetuaLogin(Displayable) : void+ registrarAtividadeAula(Displayable, String, String) : void+ editarAtividadeAula(Displayable, String) : void+ exibirListaAtividadesAula(Displayable) : void+ exibirListaAvaliacaoTurma(Displayable) : void+ exibirMediaFinalAluno(Displayable) : void+ exibirRegistroFrequencia(Displayable) : void+ exibirInfAusenciaAluno(Displayable) : void+ listaDatasAulas(Displayable, boolean) : void+ exibirDetalhesAluno(Displayable) : void+ exibirListaMatricula(Displayable) : void+ exibirNotasAvaliacaoAlunos(Displayable) : void+ exibirListaAlunos(Displayable) : void- refreshListaAlunos() : void+ exibirListaTurmas(Displayable, Displayable) : void+ registrarAval iacaoAlunos(Displayable, String[]) : void+ setCodTurmaCorrente(String) : void+ registrarFrequenciaAlunos(Displayable, boolean[]) : void
«singleton»model::DiarioEletronicoFacade
{leaf}
- DiarioEletronicoFacade()+ getInstance() : DiarioEletronicoFacade+ initialize(String, boolean) : void- getBooleanArrayFromVector(Vector) : boolean[]- getStringArrayFromVector(Vector) : String[]+ getListaTurmas(String) : Hashtable+ getListaAlunos(String) : Hashtable- getVectorFromStringArray(String[]) : Vector+ getDetai lsAluno(String) : Hashtable- getVectorFromBooleanArray(boolean[]) : Vector+ getListaMatriculaAluno(String) : String[]+ getInfAusenciaAluno(String, String) : Hashtable+ getMediaFinalAluno(String, String) : Hashtable+ getListaAval iacoesTurma(String) : Hashtable+ getNotasAvaliacoesAlunos(String, String) : Hashtable+ getFrequenciaAlunos(String, String) : Hashtable+ efetuaLogin(String, String) : String+ getListaDatasAulas(String) : Hashtable+ registrarAval iacaoAlunos(String, String[], String[]) : void+ registrarFrequenciaAlunos(String, String[], boolean[]) : void+ getListaAtividades(String) : Hashtable+ registrarAtividade(String, String) : void+ getObservacaoAtividade(String) : String
-facade
![Page 23: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/23.jpg)
Implementação(Design Patterns)
� Facade e Singleton -Utilizados em conjunto para abstrair a utilização de Web Services e o acesso às informações de um sistema acadêmico
cd Modelo de Classes
«enti ty facade»ej b::DiarioEletronicoFacade
- instance: DiarioEletronicoFacade
- DiarioEletronicoFacade()+ getInstance() : DiarioEletronicoFacade+ getListaTurmas(String) : Vector+ getListaAlunos(String) : Vector+ getDetai lsAluno(String) : Vector+ getListaMatriculaAluno(String) : String[]+ getInfAusenciaAluno(String, String) : Vector+ getMediaFinalAluno(String, String) : Vector- calculaMediaFinal(String, String[], String[]) : String+ getListaAval iacoesT urma(String) : Vector+ getNotasAval iacoesAlunos(String, String) : Vector+ getFrequenciaAlunos(String, String) : Vector+ getListaDatasAulas(String, Long) : Vector+ registrarFrequenciaAlunos(String, Vector, Vector) : void+ registrarAval iacaoAlunos(String, Vector, Vector) : void+ getListaAtividades(String) : Vector+ registrarAtividade(String, String) : void+ getObservacaoAtividade(String) : String+ getNomeProfessor(String) : String+ getArrayListTurmas(String) : ArrayList+ getArrayListAlunos(String) : ArrayList+ getArrayListDatasAulas(String, Long) : ArrayList+ insereAval iacao(String, String, String) : void+ excluiAval iacao(String) : void+ alteraAval iacao(String, String, String, String) : void+ getDadosAval iacao(String) : HashMap+ getArrayListAval iacoes(String) : ArrayList+ insereAtividade(String, String, String) : void+ excluiAtividade(String) : void+ alteraAtividade(String, String, String, String) : void+ getDadosAtividade(String) : HashMap+ getArrayListAtividades(String) : ArrayList+ atual izaFormulaMediaFinal(String, String) : void+ getFormulaMediaFinal(String) : String- getTurmaLocal (String) : TurmaLocal- getImgBase64(String) : String
-instance
![Page 24: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/24.jpg)
Operacionalidade
� Aplicação J2ME
![Page 25: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/25.jpg)
Operacionalidade
� Aplicação WEB
![Page 26: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/26.jpg)
Resultados e Discussão
� Portabilidade entre diferentes dispositivos móveis foi obtida pela especificação padrão de configurações e perfis do J2ME
� Suporte ao desenvolvimento de aplicações J2ME deficiente por parte das operadoras de telefonia celular e dos fabricantes de celulares
� Troca de dados com um servidor de aplicações utilizando Web Services foi possível
� As aplicações WEB e J2ME utilizaram métodos de negócio comuns devido a utilização de EJB
� Fachada para o sistema acadêmico foi obtida com a utilização de Design Patterns
![Page 27: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/27.jpg)
Trabalhos correlatos
xEJBs como componentes no servidor
xServlets com componentes no servidor
xxArmazenamento das informações do celular
xxAplicação de Design Patterns no projeto
xComunicação com Web Services
xxProjeto orientado a objetos
xxxTroca de informações com um servidor
xMeio de comunicação confidencial e seguro
xxUtilização de XML com o protocolo HTTP
xxxxImplementação com J2ME
Depiné(2002)Schmitt Junior (2004)Schaefer(2004)Este ProjetoFuncionalidades
� Protótipo de software para dispositivos móveis utilizando J2ME para cálculo de regularidade em rally (Depiné, 2002)
� Protótipo de aplicativo para transmissão de dados a partir de dispositivos móveis aplicado a uma empresa de transportes (Schaefer, 2004)
� Protótipo de front end de controle de acesso usando J2ME (Schmitt Junior, 2004)
![Page 28: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/28.jpg)
Conclusão
� Viabilidade da utilização de uma ferramenta de apoio em um dispositivo celular
� Todos os requisitos foram implementados com sucesso
� Nenhum ajuste foi necessário para executar a aplicação J2ME em um dispositivo celular real
� Deve ser feitas otimizações em relação àperformance da comunicação com o Web Service
� Soluções aplicadas ao projeto se tornaram simples com a utilização de Design Patterns
� Dificuldade ao tentar utilizar recursos de rede no dispositivo celular pela aplicação J2ME devido àconfigurações da operadora de telefonia celular
![Page 29: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/29.jpg)
Extensões
� Adicionar tolerância à falhas na classe fachada da aplicação J2ME para persistir os dados no dispositivo celular
� Adicionar ao menu dos detalhes do aluno, opções para registrar a sua freqüência e as notas das suas avaliações
� Disponibilizar as funcionalidades de registro de freqüência e notas das avaliações na WEB
� Invalidar a fórmula do cálculo da média final se for alterado um código de uma avaliação ou se a mesma for excluída
� Pesquisa de alguma técnica de compressão das mensagens SOAP para reduzir o tamanho dos pacotes trafegados na rede
![Page 30: PROTÓTIPO DE UM DIÁRIO DE CLASSE EM ...campeche.inf.furb.br/tccs/2005-I/2005-1fabianorosaap.pdfPadrões de Projeto (Design Patterns) Soluções testadas e aprovadas para facilitar](https://reader034.vdocuments.com.br/reader034/viewer/2022050105/5f43df72162dfb03c84a4f92/html5/thumbnails/30.jpg)
Demonstração