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