Örebro universitet
Institutionen för teknik
Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se)






Tentamen i

Mobiltelefonapplikationer med J2ME

(distanskurs)

lördag 13 januari 2007 kl 14:00 - 18:00 i T143







Hjälpmedel: Vilket tryckt eller skrivet material som helst, bara det är på papper: böcker, utskrifter, egna anteckningar. Inga datorer. Som alternativ till ordbok, om man behöver en sån, kan man dock använda en så kallad "C-pen", som är ett elektroniskt lexikon i form av en penna.
 
Poängkrav: Maximal poäng är 40.
För betyget G krävs 20 poäng.
 
Resultat och lösningar: Meddelas på kursens hemsida senast lördag 3 februari 2007.
Visning och frågestund: Tisdag 6 februari 2007 kl 15:00-15:30 i mitt rum (T2220).
Efter visningen kan tentorna hämtas på expeditionen.
 
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070-73 47 013.




LYCKA TILL!

Uppgift 1 (5 p)

a) Vad är J2ME?

b) Hur skiljer sig J2ME från J2SE (Java 2 Standard Edition)?

c) Vilka olika typer av datorer (där "datorer" kan tolkas i ganska vid bemärkelse) kan man köra J2ME på?

Uppgift 2 (5 p)

a) Vad är WTK, och vad innehåller den?

b) Vad innebär händelsestyrd programmering ("event-driven programming")?

c) Vad är en händelse ("event")?

Uppgift 3 (5 p)

a) Vad menas med abstraktion och upptäckt (engelska: "discovery") i MIDP-sammanhang?

b) För det mesta bör man använda abstraktion. Varför?

c) Kommandon i J2ME har olika prioriteter. Varför?

Uppgift 4 (25 p)

Ibland får man rådet att inte skriva upp lösenorden till datorer, utan i stället lära sig dem utantill. Det fungerade ganska bra när de flesta människor hade ett enda lösenord att hålla reda på, men numera har man ofta tiotals eller hundratals olika lösenord, som alla ska vara olika och så krångliga att de är svårgissade.

Själv kan jag till exempel logga in på webbservern www.aass.oru.se med användarnamnet tpy och lösenordet apa. Jag kan också logga in på databasservern basen.oru.se med användarnamnet root och lösenordet svamp. (Det är inte omöjligt att jag ljuger om lösenorden.)

I verkligheten skriver alla förstås upp sina lösenord, antingen på en lapp i plånboken eller i värsta fall på en post-it-lapp fastklistrad på datorskärmen. Som alternativ till dessa lappar ska vi göra en MIDlet som håller reda på våra lösenord.

När programmet startas visas en tom lista, och man kan välja att lägga in ett nytt lösenord:

MIDleten Losenord i emulatorn

Då kommer man till ett tomt formulär där man kan mata in namnet på systemet, användarnamnet, och lösenordet.
Sen kan man välja mellan kommandona Spara (som sparar det man matat in) och Tillbaka (som bara kastar bort det).

MIDleten Losenord i emulatorn   MIDleten Losenord i emulatorn

När man sparat kommer man tillbaka till listan, där det nya lösenordet nu finns med, i form av namnet på systemet.

MIDleten Losenord i emulatorn

När man har lagt in lösenord kan man välja ett i listan.
Då kommer man till samma formulär som förut, men med uppgifterna om lösenordet ifyllda.

MIDleten Losenord i emulatorn   MIDleten Losenord i emulatorn

I formuläret kan man antingen bara titta på lösenordet, eller göra ändringar. På samma sätt som när man skapade ett nytt lösenord så kan man även här välja mellan kommandona Tillbaka (som går tillbaka till listan utan att spara eventuella ändringar) och Spara (som sparar ändringarna).

Dessutom finns kommandot Avsluta, både i listan och i formuläret.

Uppgiften går ut på att skriva MIDleten, alltså hela .java-filen med MIDlet-klassen. För full poäng på uppgiften krävs att lösenorden på något sätt finns kvar mellan körningar, så att de inte försvinner bara för att man trycker på Avsluta.

(Egentligen borde man behöva mata in ett lösenord för att få titta på de andra lösenorden, så att inte vem som helst som hittar min mobiltelefon kan bläddra bland mina lösenord, men den detaljen hoppar vi över i den här uppgiften.)

Kom ihåg: För full poäng på uppgiften krävs att lösenorden på något sätt finns kvar mellan körningar, så att de inte försvinner bara för att man trycker på Avsluta.