SM3121 Software Technology Mark Green School of Creative Media.
-
date post
22-Dec-2015 -
Category
Documents
-
view
216 -
download
0
Transcript of SM3121 Software Technology Mark Green School of Creative Media.
SM3121SM3121Software TechnologySoftware Technology
Mark GreenMark Green
School of Creative MediaSchool of Creative Media
IntroductionIntroduction
How do we develop applications for small How do we develop applications for small devices?devices?
What types of software are available?What types of software are available? What software can we use to build stuff for What software can we use to build stuff for
these things?these things? The production process is somewhat The production process is somewhat
different due to the small size of the different due to the small size of the devicesdevices
Embedded SoftwareEmbedded Software
The technical CS term for thisThe technical CS term for this Not using a general purpose computerNot using a general purpose computer Content / software not developed on the Content / software not developed on the
device itselfdevice itself Limited to no tools available on the deviceLimited to no tools available on the device Device can be a hostile environmentDevice can be a hostile environment
For PCs we can develop, test and use on For PCs we can develop, test and use on the same computer, simplifies the the same computer, simplifies the production processproduction process
Embedded SoftwareEmbedded Software
Can’t write programs or edit videos on a Can’t write programs or edit videos on a mobile phone – just doesn’t workmobile phone – just doesn’t work
We need to use a computer to produce the We need to use a computer to produce the content and then transfer it to the devicecontent and then transfer it to the device
Develop on the computer and test on the Develop on the computer and test on the device, involves switching back and forthdevice, involves switching back and forth
Must be able to easily transfer content Must be able to easily transfer content between the devicesbetween the devices
ProblemsProblems
Things don’t look the same, something Things don’t look the same, something that looks good on PC screen might not that looks good on PC screen might not display very well on a phonedisplay very well on a phone
Expensive / time consuming to send Expensive / time consuming to send content to the devicecontent to the device
Hard to get information off of the deviceHard to get information off of the device May not be able to determine what went May not be able to determine what went
wrongwrong
SolutionsSolutions
Emulators – simulate the device on a PCEmulators – simulate the device on a PC Easy and quick to transfer the contentEasy and quick to transfer the content Can get extra information from the Can get extra information from the
emulator, provide assistance with testingemulator, provide assistance with testing Don’t need to switch between devicesDon’t need to switch between devices Emulator can simulate situations that are Emulator can simulate situations that are
hard to produce with real devices, hard to produce with real devices, communications failures, noise, etccommunications failures, noise, etc
SolutionsSolutions
Problems with emulators:Problems with emulators: Someone needs to write the emulatorSomeone needs to write the emulator May not be very realistic, may run much faster May not be very realistic, may run much faster
than real device, have more storage than the than real device, have more storage than the real devicereal device
Don’t get the same feel / experience as using Don’t get the same feel / experience as using the real devicethe real device
Doesn’t solve all the problems, but a good Doesn’t solve all the problems, but a good startstart
SolutionsSolutions
Development platform: special version of Development platform: special version of the device that supports content the device that supports content developmentdevelopment
Better communications with the PC, easier Better communications with the PC, easier to transfer contentto transfer content
More storage and support for testing and More storage and support for testing and debugging contentdebugging content
Closer to the real thingCloser to the real thing
SolutionsSolutions
Development platform is better than an Development platform is better than an emulator, but still has its problemsemulator, but still has its problems
Usually very expensive, many times more Usually very expensive, many times more expensive than the deviceexpensive than the device
Still need to switch between devicesStill need to switch between devices Has more resources than real device, so Has more resources than real device, so
still may have problems when you switch still may have problems when you switch to the real deviceto the real device
JavaJava
Java was originally developed by Sun in Java was originally developed by Sun in the early 1990s for programming small the early 1990s for programming small devicesdevices
The original version was a failureThe original version was a failure In 1995 with the web becoming popular it In 1995 with the web becoming popular it
was revived for web programmingwas revived for web programming This was quite successful, and Java This was quite successful, and Java
become extremely popularbecome extremely popular
JavaJava
Basic ideas:Basic ideas: Produce a language that will run anywhere, Produce a language that will run anywhere,
use an interpreter, not a compileruse an interpreter, not a compiler Remove language features that make it hard Remove language features that make it hard
to program, produce an “easier to use to program, produce an “easier to use language”language”
Try to be everything to everyone, support Try to be everything to everyone, support everything so language will be widely usedeverything so language will be widely used
A secure web languageA secure web language
JavaJava
For small applications Java works quite For small applications Java works quite well, it also works well in dynamic well, it also works well in dynamic environmentsenvironments
For large programs / applications it was a For large programs / applications it was a complete disaster, to the point of almost complete disaster, to the point of almost destroying several major companiesdestroying several major companies
Some problems are hard, need to have Some problems are hard, need to have complex language features, otherwise complex language features, otherwise programming become very difficultprogramming become very difficult
JavaJava
Became far too large, tried to do far too Became far too large, tried to do far too muchmuch
Produced a system that worked poorly Produced a system that worked poorly everywhereeverywhere
For PCs and workstations the generic For PCs and workstations the generic approach just didn’t workapproach just didn’t work
Easier to port good applications from one Easier to port good applications from one platform to anotherplatform to another
JavaJava
Becoming popular on mobile phonesBecoming popular on mobile phones A very good fit, where it really belongsA very good fit, where it really belongs Large number of different phones:Large number of different phones:
Similar outward appearance, all work basically Similar outward appearance, all work basically the same from user’s point of viewthe same from user’s point of view
Inside they can be quite different, use Inside they can be quite different, use different processors and softwaredifferent processors and software
Java makes it possible to develop for a Java makes it possible to develop for a range of phonesrange of phones
JavaJava
Problem: standard Java (J2SE) is far too Problem: standard Java (J2SE) is far too big, won’t fit on a phone, can take up most big, won’t fit on a phone, can take up most of a PDAof a PDA
Need a smaller version: J2ME – Java 2 Need a smaller version: J2ME – Java 2 Micro EditionMicro Edition
Aimed at embedded devices, not just Aimed at embedded devices, not just phones, but also set top boxes and phones, but also set top boxes and appliancesappliances
JavaJava
J2ME supports a range of devices, so J2ME supports a range of devices, so there are multiple versionsthere are multiple versions
Attempt to keep things sort of standard Attempt to keep things sort of standard while addressing different deviceswhile addressing different devices
We are interesting in the CLDC We are interesting in the CLDC configuration, Connected Limited Device configuration, Connected Limited Device Configuration using the MIDP profile, Configuration using the MIDP profile, Mobile Information Device ProfileMobile Information Device Profile
JavaJava
CLDC is aimed at small devices (a few CLDC is aimed at small devices (a few Mbytes of memory) that are sometimes Mbytes of memory) that are sometimes connected to a network, assumes slow connected to a network, assumes slow networknetwork
MIDP provides the features required for MIDP provides the features required for applications on mobile phones and PDAsapplications on mobile phones and PDAs
This is a reasonably good solution and we This is a reasonably good solution and we will look at it further later in the coursewill look at it further later in the course
Windows CEWindows CE
One of the best places to startOne of the best places to start The version of Windows for small devices, The version of Windows for small devices,
can be used on:can be used on: PDAPDA Mobile phoneMobile phone AppliancesAppliances CarsCars Set top boxesSet top boxes
Windows CEWindows CE
A cut down version of Windows, aimed at A cut down version of Windows, aimed at different marketsdifferent markets
A different version of Windows CE for A different version of Windows CE for each market area, two most interestingeach market area, two most interesting Pocket PC – aimed at PDA marketPocket PC – aimed at PDA market SmartPhone – aimed at high end mobile SmartPhone – aimed at high end mobile
phone marketphone market All have the same basic structure, same All have the same basic structure, same
as PCas PC
Windows CEWindows CE
Advantages for user:Advantages for user: A familiar environment, not a major change A familiar environment, not a major change
from what they are used tofrom what they are used to Already know how to use it, not as much to Already know how to use it, not as much to
learnlearn Advantages for developers:Advantages for developers:
Not a new environment, can use previous Not a new environment, can use previous skillsskills
Easier to transfer content and applicationsEasier to transfer content and applications
Windows CEWindows CE
Has familiar file structureHas familiar file structure Applications developed in basically the Applications developed in basically the
same way, using same or similar toolssame way, using same or similar tools Easy to get content onto the devicesEasy to get content onto the devices Most important: easier to determine what Most important: easier to determine what
went wrongwent wrong Not a closed environment, can see what is Not a closed environment, can see what is
happeninghappening
Windows CEWindows CE
Sync – used on most mobile devices, Sync – used on most mobile devices, update files on mobile devicesupdate files on mobile devices
Have PC with main copy of files, update Have PC with main copy of files, update files on PC (easier to do)files on PC (easier to do)
Periodically transfer files from PC to Periodically transfer files from PC to mobile devicemobile device
Can go other direction as wellCan go other direction as well Not usually a fast operationNot usually a fast operation
Windows CEWindows CE
Windows CEWindows CE
On most mobile devices a simple file On most mobile devices a simple file transfertransfer
On Windows CE can see the mobile On Windows CE can see the mobile device’s file system from PCdevice’s file system from PC
Can use drag and drop to send files Can use drag and drop to send files between devicesbetween devices
Can do standard file operations from PC Can do standard file operations from PC on mobile device’s fileson mobile device’s files
Windows CEWindows CE