Ficha Programática da unidade curricular

Unidade curricular:

PROGRAMAÇÃO APLICAÇÕES MÓVEIS

 

 

 

 

Docente:

RUI SILVA MOREIRA

Grau académico:

DOUTOR

Categoria Funcional:

PROFESSOR AUXILIAR

 

 

 

 

 

 

Ciclo de Estudos:

2º CICLO

Curso:

ENGENHARIA INFORMÁTICA

Semestre curricular:

1º SEMESTRE

Ano lectivo:

2009-2010

N.º total de ECTS:

3

 

 

N.º ECTS de Contacto:

3

 

 

Tipologia das aulas:

As aulas terão a natureza Teórico-Prática (TP)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Avaliação:

 

1 - Avaliação contínua

 

O método de avaliação da disciplina baseia-se no modelo da avaliação contínua e compreende duas componentes: uma componente Teórico-Prática e uma componente Prática Não-Laboratorial resultante na sua maioria de trabalhos realizados durante o semestre.

 

Componente Teórico-Prática

A componente teórico-prática tem um peso de 50% na classificação final da disciplina. A avaliação da componente teórico-prática realiza-se de forma contínua durante as aulas teórico-práticas, e inclui os seguintes elementos de avaliação:

 

·          Dois testes de avaliação individual: incidem sobre os conhecimentos leccionados até ao momento em que são realizados. Cada teste possui um peso de 45% na classificação teórico-prática. Um teste realiza-se a meio do semestre e o outro no fim do semestre (em data a combinar com os alunos). Os testes englobarão um conjunto de perguntas de escolha múltipla (havendo desconto de 25% por cada resposta errada), de verdadeiros/falso (aplicando-se um desconto de 50% por cada resposta errada) e algumas perguntas de desenvolvimento.

 

·          Desempenho do aluno durante as aulas TP: esta componente procurará avaliar a assiduidade (medida por folhas de presença) e também a participação, o empenho nas aulas e também a capacidade para a realização de apresentações sobre plataformas e tecnologias móveis. Este elemento possui um peso de 10% na classificação final.

 

Exige-se uma nota mínima de oito (8) valores nesta componente para que se possa ponderar com a classificação da componente prática não-laboratorial para efeitos de cálculo da classificação final na disciplina.

 

A falta aos momentos de avaliação será convertida numa nota 0 (zero) para efeitos de cálculo da classificação. Caso o aluno não fique aprovado, será remetido para exame de recurso ou especial (seja trabalhador-estudante ou finalista), desde que o aluno tenha obtido a aprovação na componente prática da disciplina e cumprido o regime de assistência às aulas. Nas aulas teórico-práticas a assiduidade obrigatória é de 50%, de acordo com o regulamento pedagógico da UFP.

 

A classificação obtida na componente teórico-prática será, pois, obtida através da seguinte expressão:

 

Nota da componente Teórico-Prática = 45% Teste 1 + 45% Teste 2 + 10% Desempenho Aluno Aulas

 

Componente Prática Não-Laboratorial

A componente prática não-laboratorial tem um peso de 50% na classificação final da disciplina. A avaliação da componente prática não-laboratorial realiza-se igualmente de modo contínuo durante as aulas práticas não-laboratoriais e também pela realização de um projecto realizado em grupo (no máximo com 2 alunos). Este projecto implicará a especificação e implementação de um sistema/aplicação móvel, utilizando as plataformas J2ME e/ou .NET CF, sobre um tema proposto no primeiro terço do semestre.

 

A avaliação da componente prática não-laboratorial inclui os seguintes elementos de avaliação:

 

·          Relatório da análise de requisitos: os alunos deverão entregar um relatório a meio do semestre (em data a especificar) onde devem desenvolver a ideia e possíveis funcionalidades do sistema móvel proposto. Este relatório preliminar possui um peso de 20% da nota da componente prática não-laboratorial.

 

·          Projecto de um sistema móvel: os alunos deverão projectar um sistema móvel e apresentá-lo no final do semestre em sala de aula (em data a especificar). Para demonstrar a utilização e substanciar a exequibilidade do sistema, este deverá ser prototipado utilizando as ferramentas/tecnologias abordadas nas aulas. O resultado final deverá dar origem a um artigo com os requisitos, arquitectura e funcionalidade do sistema bem como das tecnologias utilizadas. Terá ainda que incluir uma revisão bibliográfica exaustiva que demonstre o conhecimento dos alunos acerca das tecnologias e ferramentas utilizadas para o tema concreto proposto. O artigo deverá ser entregue em formato electrónico, de acordo com o modelo das revistas do IEEE (a disponibilizar pelo docente) e possuir entre 5 a 6 páginas. Os alunos terão que marcar presença em pelo menos 2 sessões de discussão/análise do trabalho durante as horas de atendimento para acompanhamento do projecto e/ou esclarecimento de dúvidas. O artigo e a implementação possuem um peso de 70% na classificação final.

 

·          Desempenho do aluno durante as aulas PNL: esta componente procurará avaliar a assiduidade (medida por folhas de presença), a participaçãom e o empenho nas aulas através da realização de pequenos trabalhos práticos de aplicação e/ou desenvolvimento que serão distribuídos pelo semestre e contabilizados equitativamente. Este elemento possui um peso de 10% na classificação final da componente teórico-prática.

 

A assiduidade às aulas práticas não-laboratoriais deve ser no mínimo de 70%. Não há possibilidade de recurso ou época especial para a componente prática não-laboratorial. A classificação obtida na componente prática obtém-se através da seguinte expressão:

 

Nota da componente Prática Não-Laboratorial =

20% Relatório Análise Requisitos + 70% Projecto Sistema Ubíquo e Móvel + 10% Desempenho Aluno Aulas PNL

 

Classificação final

A classificação final da disciplina obtém-se através da seguinte expressão:

 

Nota final = 50% Nota da Componente Teórico-Prática + 50% Nota da Componente Prática Não-Laboratorial

 

Ao aluno, só será contabilizada a classificação obtida na componente teórico-prática da disciplina se o aluno tiver obtido uma classificação igual ou superior a dez (10) valores na componente prática. Caso contrário lança-se a nota negativa (da componente prática) em pauta. De igual modo, exige-se uma nota mínima de oito (8) valores na componente teórico-prática para que se possa ponderar com a classificação da componente prática não-laboratorial. Caso contrário lança-se a nota negativa (da componente teórica) em pauta.

 

2 - Exame de Recurso/Época Especial:

 

O exame de recurso/época especial é uma prova excepcional que ocorre apenas no final do ano lectivo, no período previsto no cronograma, e que apenas abrange a componente teórico-prática da disciplina, incidindo sobre a totalidade da matéria teórico-prática incluída no programa da disciplina, com a duração máxima, incluindo tolerância, de 90 minutos. O aluno só se poderá submeter a este exame se tiver sido aprovado na componente prática desta disciplina e tenha cumprido as assiduidades mínimas estabelecidas no regulamento pedagógico. É exigida uma nota mínima que seja, pelo menos, igual ao valor inferior da classificação, que num exame, dá acesso à oral, nesta componente teórica da avaliação para que se possa ponderar com a nota da componente prática para efeitos do cálculo da nota final. Esta prova destina-se aos alunos que não obtiveram aprovação na componente teórico-prática da disciplina, ou alunos em regimes especiais. Não existe qualquer possibilidade de recurso à componente prática da disciplina.

 

A classificação final do aluno será calculada utilizando a equação indicada acima na secção classificação final. A classificação obtida no exame de recurso ou especial corresponderá à classificação da componente teórica.

 

Este procedimento também se aplica às Épocas de Trabalhador-Estudante e Finalista.

 

No caso de alunos com o estatuto de trabalhador-estudante, com impossibilidade de presença num número significativo de aulas teórico-práticas, a avaliação do desempenho em sala de aula será substituída por uma prova oral em que o aluno deverá resolver um conjunto de problemas teórico-práticos relacionados com o programa da disciplina. Sempre que se julgar necessário, o docente poderá solicitar o desenvolvimento de trabalhos complementares (sob o modo de apresentação oral ou escrita) de modo a melhor aferir o nível de conhecimentos e de competências alcançado pelo aluno.

 

Objectivos da unidade curricular e competências a atingir:

 

Actualmente, é cada vez mais comum e generalizada a utilização de dispositivos móveis, e.g., telefones móveis ou smart phones, Personal Digital Assistants (PDAs), etc. Estes aparelhos evoluiram de forma acentuada nos últimos anos e possuem já capacidades de processamento, comunicação e memória significativas que permitem o desenvolvimento de aplicações móveis complexas, envolvendo normalmente requisitos gráficos e de comunicação consideráveis que permitem aos utilizadores aceder à infraestrutura de informação de forma contínua e independentemente da localização.

Existem muitos aspectos a considerar nas aplicações móveis que as distinguem das aplicações fixas/standalone e mesmo das aplicações distribuídas tradicionais. Por um lado estas aplicações são executadas sobre plataformas e infraestruturas que podem variar significativamente, tanto em termos de recursos físicos (e.g., RAM, CPU, resolução ecrans, etc.) como em termos de capacidades de comunicação (e.g., variedade de redes e protocolos, diferentes níveis de conectividade, flutuações de largura de banda, etc.). Por outro lado, a natureza e/ou o domínio das próprias aplicações exigem muitas vezes capacidades de adaptação para responder à posição dos clientes/dispositivos móveis mas também a diferentes condições ambientais/contextuais (e.g., disponibilidade de recursos, tarefas agendadas, presença/ausência de outras entidades, etc.). As primeiras, aplicações móveis sensiveis à localização, são já comuns e permitem oferecer informação aos utilizadores ou tomar decisões baseados na sua localização (e.g., lista de pontos de interesse numa dada zona, alternativas de caminhos a seguir, etc.). As segundas, aplicações sensíveis aos contexto, começam a surgir em várias áreas e domínios de aplicação (e.g., monitorização ambiental, detecção/alerta de cheias e incêndios, controlo de ambientes residenciais, etc.); estas aplicações dependem muito da interligação de múltiplos sensores e actuadores com um suporte de middleware capaz de monitorizar, gerir e despoletar decisões e adaptações dinâmicas do sistema. Ambos os tipos de aplicações desempenharão no futuro papéis importantes no nosso dia-a-dia, contudo, iremos focar-nos principalmente nas aplicações basedas em dispositivos móveis.

Neste contexto, esta unidade curricular pretende dotar os alunos do curso de informática de conhecimentos sólidos sobre as tecnologias, plataformas e soluções de desenvolvimento mais utilizadas actualmente com dispositivos móveis, nomeadamente as tecnologias J2ME e .NET Compact Framework (CF). Assim, os objectivos principais desta unidade curricular passam pela identificação e caraterização das principais plataformas móveis existentes, pelo conhecimento dos protocolos de comunicação mais utilizados por estas plataformas e pelo estudo das arquitecturas e das ferramentas de programação mais utilizadas no desenvolvimento de aplicações móveis para estas plataformas. Os alunos deverão, no final do semestre, estar familiarizados com os conceitos e tecnologias móveis e, em especial, a programação de aplicações sensiveis à localização. Devem ainda dominar as principais tecnologias e ferramentas de desenvolvimento de aplicações móveis existentes e deverão ser capazes de desenvolver aplicações móveis para telefones móveis e PDAs, envolvendo não só os aspectos de interface gráfica mais comuns, mas também os aspectos de comunicação (e.g., WiFi, Bluetooth, OBEX, Ird), protocolos de comunicação ao nível da aplicação (e.g., SMS, MMS, Email) e segurança (e.g., criptografia, assinatura de código).

Os alunos que pretendam assistir a esta unidade curricular devem ter conhecimentos/aproveitamento às disciplinas de programação orientada aos objectos e computação móvel.

 

 

 

Conteúdos por unidade lectiva e sua forma de execução pedagógica:

 

Conteúdos

Horas Contacto

Estudo Individual

ECTS

Bibliografia

(T+TP+P+L+TC+OT)

1. Introdução às Aplicações Móveis

 

 

 

 

1.1. Caracterização das aplicações móveis

6

6

0,5

[1], [2]

1.2. Evolução das plataformas e aplicações móveis

1.3. Características das plataformas móveis (CPU, RAM, IO)

1.4. Comunicações sem fios (WiFi, Bluetooth, Ird)

1.5. Plataformas de desenvolvimento de aplicações móveis

1.6. Análise de exemplos de aplicações móveis

2. Arquitectura das Aplicações Móveis

 

 

 

 

2.1. Separação de aspectos e controlo da execução

6

6

0,5

[1], [2], [3], [4]

2.2. Dados locais ou remotos e sincronização

2.3. Protocolos de comunicação (SMS, MMS, HTTP)

2.3. Segurança de dispositivos e aplicações móveis

2.4. Instalação e execução de aplicações móveis

2.5. Linguagens e ferramentas de desenvolvimento

2.5.1. Breve introdução à plataforma J2ME

2.5.2. Breve introdução à plataforma .NET CF

2.5.3. Breve introdução à plataforma Python (Nokia S60 Module)

2.5.4. Breve introdução à plataforma Carbide C++ (Symbian OS)

3. Programação de Aplicações Móveis com J2ME

 

 

 

 

3.1. A linguagem de programação Java

18

9

1

[3]

3.2. KVM e bytecode

3.3. Arquitectura do J2ME (CDC-CLDC, MIDP)

3.4. Ferramentas de desenvolvimento (NetBeans)

3.5. Ciclo de desenvolvimento e distribuição (JAR/JAD)

3.6. Interfaces gráficas e eventos (MIDlets)

3.7. IO e persistência (RMS)

3.8. Jogos e Multimédia (Mobile Media)

3.9. Comunicações e segurança

3.10. Desenvolvimento de aplicações – casos de estudo

4. Programação de Aplicações Móveis com .NET CF

 

 

 

 

4.1. A linguagem de programação C#

18

9

1

[4]

4.2. CLR e Microsoft Intermediate Language (MSIL)

4.3. Arquitectura da .NET CF

4.4. Ferramentas de desenvolvimento (Visual Studio)

4.5. Ciclo de desenvolvimento e distribuição (Assemblies)

4.6. Interfaces gráficas e eventos

4.7. IO e persistência (DataSets)

4.8. Multimédia

4.9. Comunicações e segurança (code signing)

4.10. Desenvolvimento de aplicações – casos de estudo

TOTAL

48

30

      3

78

 

Nota: Nº de ECTS = horas/26

 

Conteúdos-Horas-Contacto-Estudo Individual–ECTS-Bibliografia

1. Introdução às Aplicações Móveis-6-6-0,5-[1], [2]

2. Arquitectura das Aplicações Móveis-6-6-0,5-[1], [2], [3], [4]

3. Programação de Aplicações Móveis com J2ME-18-9-1-[3]

4. Programação de Aplicações Móveis com .NET CF-18-9-1-[4]

 

Bibliografia:

Principal

[1] G. Coulouris, J. Dollimore & T. Kindberg, Distributed Systems: Concepts and Design, 4th Edition, Addison Wesley, 2005.

[2] T. Mikkonen, Programming Mobile Devices: an introduction for practitioners, John Wiley & Sons, 2007.

[3] K. Topley, J2ME in a Nutshell, O'Reilly Java series, O'Reilly, 2002

[4] J. Box, D. Fox, Building Solutions with the Microsoft .Net Compact Framework: Architecture and Best Practices for Mobile Development, Addison-Wesley, 2003.

Complementar

[1] M. Juntao Yuan, Enterprise J2ME: Developing Mobile Java Applications, Prentice Hall PTR, 2004.

[2] P. Yao, D. Durant, .NET Compact Framework Programming with C#, Microsoft .NET Development Series, Prentice Hall PTR, 2004.

 

Recursos informáticos de apoio - Ambiente de desenvolvimento

[1] Sun Java Wireless Toolkit 2.5.1 for CLDC, http://java.sun.com/products/sjwtoolkit/download-2_5_1.html

[2] JBuider – Borland, http://www.borland.com/downloads/download_jbuilder.html

[3] Netbeans IDE, http://www.netbeans.org/downloads; Mobility Pack, http://www.netbeans.org/products/mobility/

[4] Eclipse IDE, http://www.eclipse.org/downloads/; EclipseME, http://eclipseme.org/

[5] Visual Studio & .NET Compact Framework

 

Requisitos a serem cumpridos para registo total dos ECTS:

 

A aprovação (nota final igual ou superior a dez valores) é condição necessária, mas não suficiente, para creditar esta unidade curricular. Para obter a creditação desta unidade curricular o aluno terá de garantir a obtenção de todos os ECTS previstos para a unidade curricular. A atribuição dos ECTS ao aluno não é dependente exclusivamente da assiduidade em sala de aula (obrigatoriamente assegurada a, pelo menos, a 70% das aulas práticas laboratoriais e 50% das aulas teórico-práticas leccionadas); ela é também decidida em função da assiduidade aos actos pedagógicos programados pelo professor e da participação em seminários, eventos culturais e científicos a definir pelo docente ou a coordenação da área científica de Informática.

 

Os ECTS previstos para o trabalho e estudo pessoal do aluno só lhe serão integralmente atribuídos em função do desempenho demonstrado, nomeadamente no que respeita à aquisição dos conhecimentos e competências visados por esta unidade curricular: conhecimento efectivo da bibliografia indicada e demonstração do conhecimento sobre sistemas ubíquos e móveis e da capacidade para compreender e explicar as características técnicas e tecnologias que estão na base destes sistemas. O grau de desenvolvimento de conhecimentos bem como de aquisição de competências nas áreas temáticas compreendidas no programa da disciplina será avaliado de modo contínuo ao longo do semestre, quer em termos do domínio dos conceitos teóricos que sustentam a análise e compreensão de sistemas móveis, quer em termos do domínio das tecnologias de desenvolvimento inerentes a estes sistemas, quer ainda em termos de comunicação oral e escrita dos temas e conceitos abordados.

 

Resumo: Apresentação dos objectivos, programa, bibliografia e método de avaliação. Introdução às Aplicações Móveis: caracterização das aplicações móveis, evolução das plataformas e aplicações móveis, características das plataformas móveis (CPU, RAM, IO), comunicações sem fios (e.g., WiFi, Bluetooth, Ird, etc.), plataformas de desenvolvimento de aplicações móveis, análise de exemplos de aplicações móveis. Arquitectura das Aplicações Móveis: separação de aspectos e controlo da execução, dados locais ou remotos e sincronização, protocolos de comunicação (e.g., SMS, MMS, HTTP, etc.), segurança de dispositivos e aplicações móveis, instalação e execução de aplicações móveis, linguagens e ferramentas de desenvolvimento (cf. J2ME, .NET CF, Python - Nokia S60 Module; Carbide C++ - Symbian OS). Programação de Aplicações Móveis com J2ME: a linguagem de programação Java, KVM e bytecode, arquitectura do J2ME (CDC-CLDC, MIDP), ferramentas de desenvolvimento (cf. Sun WT, Eclipse, NetBeans, etc.), ciclo de desenvolvimento e distribuição (JAR/JAD), interfaces gráficas e eventos (MIDlets), IO e persistência (RMS), jogos e multimédia (Mobile Media), comunicações e segurança (dados/rede), desenvolvimento de aplicações – casos de estudo. Programação de Aplicações Móveis com .NET CF: a linguagem de programação C#, CLR e Microsoft Intermediate Language (MSIL), arquitectura da .NET CF, ferramentas de desenvolvimento (Visual Studio & Compact Framework), ciclo de desenvolvimento e distribuição (Assemblies), interfaces gráficas e eventos, IO e persistência (DataSets, XML), multimédia, comunicações e segurança (code signing), desenvolvimento de aplicações – casos de estudo.

 

Abstract: Presentation of the goals, syllabus, bibliography and evaluation methods. Introduction to mobile applications: characterization of mobile applications, evolutions of mobile platforms and mobile applications, characteristics of the mobile platforms (CPU, RAM, IO), wireless communication (e.g., WiFi, Bluetooth, Ird, etc.), mobile applications development platforms, analysis of mobile application examples. Mobile applications architecture: separations of concerns/aspects and execution control, local and remote data and synchronization, communication protocols (e.g., SMS, MMS, HTTP, etc.), security of mobile applications and gadgets, deployment and execution of mobile applications, programming languages and development tools (cf. J2ME, .NET CF, Python - Nokia S60 Module; Carbide C++ - Symbian OS). Programming mobile applications with J2ME: Java programming language, KVM and bytecode, J2ME architecture (CDC-CLDC, MIDP), development tools (cf. Sun WT, Eclipse, NetBeans, etc.), development cycle and distribution (JAR/JAD), graphical user interfaces and events (MIDlets), IO and persistency (RMS), games and multimedia (Mobile Media), communications and security, development of applications – case studies. Programming mobile applications with .NET CF: C# programming language, CLR and Microsoft Microsoft Intermediate Language (MSIL), .NET CF architecture, development tools (Visual Studio & Compact Framework), development cycle and distributions (Assemblies), graphical user interfaces and events, IO and persistency (DataSets, XML), multimedia, communications and security (code signing), development of applications – case studies.