mobile tools for java - eclipsewiki.eclipse.org/images/4/43/mtj_development_process_v1...mobile...
TRANSCRIPT
Page: 1
Mobile Tools for Java
A. Laurila06.11.2006v. 1.6
Page: 2
Process Descriptions
Application Development Process
Page: 3
Mobile application development process
Following slides present the current Use Cases in a form of development process.The process ties up the main Use Cases and provides a detail drill-down to actual services.
Page: 4
Application Development Main Process
[has errors]
Modifyapplication
code
Modifyapplication
codeX
++Create new project
Create new project
Compile code
Compile code
[has compileerrors]
Deploythe
application
Deploythe
application
[needsmodifications]
Signthe
application
Signthe
applicationX
Runthe
application
Runthe
applicationX
X
X
Automaticsource
code build
Automaticsource
code build
Check, tune& pack codeCheck, tune& pack code
x
x
X
[needs signing]
Maintain the project
Maintain the project
X
[sourcemodified]
Deployments todifferenttargets
Legend
A hyperlink to dependent sub-process
Exit pointCan be repeated
X
xStart point
End point
+ Combines flows
Decision point
Page: 5
SubProcess - Maintain the project
CreateProject’s Runtime Platform
CreateProject’s Runtime Platform X
[needs to create newproject’s runtime platform]
SelectProject’s
default RPD
SelectProject’s
default RPD
[needsto changeproject’sdefaultruntimeplatform] Preprocess
projectscode
Preprocessprojects
code
Setprojects
classpath
Setprojects
classpathX
Storeprojectdata
Storeprojectdata
Storeprojectdata
Storeprojectdata
Legend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform Definition
ModifyProjects Runtimeplatform
ModifyProjects Runtimeplatform
[default RPDmodified]
[needsto modifyproject’sRPD]
X
Applicationproject
Page: 6
SubProcess – Modify Projects Runtime Platformupper process
SelectRuntimePlatform
Service APIs
SelectRuntimePlatform
Service APIs
BrowsedevicesBrowsedevices
[needs tomodifyAPIs]
Select defaultdevice and
target devices
Select defaultdevice and
target devices
RuntimePlatformDefinition
Selectproject’s
RPD
Selectproject’s
RPD
Applicationproject
RuntimePlatformDefinition
Legend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform Definition
Page: 7
SubProcess - Maintain the project - servicesLegend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform Definition
Selectproject’s
RPD
Selectproject’s
RPD
Storeprojectdata
Storeprojectdata
<<service>>store project’s RPDs
<<service>>store project’s RPDs
SelectRuntimePlatform
Service APIs
SelectRuntimePlatform
Service APIsSelect
Project’s default RPD
SelectProject’s
default RPD
BrowsedevicesBrowsedevices
<<Device Manager service>>get RPD’s devices
<<Device Manager service>>get RPD’s devicesPreprocess
projectscode
Preprocessprojects
code<<Preprocessing service>>
preprocess source folder’s code<<Preprocessing service>>
preprocess source folder’s code
Select defaultdevice and
target devices
Select defaultdevice and
target devices<<Device Platform service>>
get RPD’s devices<<Device Platform service>>
get RPD’s devices
Page: 8
[has errors]
Createdeployment
package
Createdeployment
packageX
Makepreverification
Makepreverification
x x
SubProcess - Check, Tune & Pack Code
Obfuscatecode
Obfuscatecode[needs
obfuscation] x
DRMencodeDRM
encode[needsDRMencoding]
x
x
[notsuccessful]
[notsuccessful]
[notsuccessful]
Applicationproject
Inform aboutproblems
Inform aboutproblems
Makepreprocessing
Makepreprocessing
Applicationsources for
different targets
X
[needspreprocessing]
Deployments todifferenttargets
Page: 9
Legend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform DefinitionSubProcess – Make Preprocessing
Select project’s target
RPDs
Select project’s target
RPDs
Applicationproject
Compilecode
Compilecode
Preprocessprojects
code
Preprocessprojects
code
[targeting onlyto project’sdefault RPD] Choose
RPDChoose
RPD
Applicationsources for
different targets
project’sRPDs
[targetingto all project’sRPDs]
[needs to selectproject’starget RPDs]
Page: 10
SubProcess – Check, Tune & Pack Code - services
Preprocessprojects
code
Preprocessprojects
code<<Preprocessing service>>
preprocess source folder’s code<<Preprocessing service>>
preprocess source folder’s codeObfuscate
codeObfuscate
code<<Obfuscation service>>
obfuscate code<<Obfuscation service>>
obfuscate code
Makepreverification
Makepreverification
<<Device Platform service>>preverify code
<<Device Platform service>>preverify code
DRMencodeDRM
encode<<DRM encoding service>>
Drm encode code<<DRM encoding service>>
Drm encode code
Page: 11
RuntimePlatform
Definitions
SubProcess - Create new project
Applicationproject
Selectprojecttype
Selectprojecttype
Install new Device
Platform
Install new Device
Platform
[Needs toinstallnew deviceplatform]
CreateEclipseproject
CreateEclipseproject
[needs tomanagedevicegroups]
Gatherproject
info
Gatherproject
info
SelecttemplateSelect
template
upper process
[like tousetemplate]
[selectedtemplate]
x
Inform aboutduplicateprojectname
Inform aboutduplicateprojectname
[changedefinitions]
Createtemplatebasedfiles
Createtemplatebasedfiles
[templateselected]
[duplicate project name]
CreateProject’s Runtime Platform
CreateProject’s Runtime Platform X
ManageDeviceGroups
ManageDeviceGroups
[Needs tomanage deviceplatforms] Manage
DevicePlatforms
ManageDevice
Platforms
[needsmoreruntimeplatforms]
DefaultDevices
X
X
X
SelectprojectsdefaultRPD
SelectprojectsdefaultRPD
Legend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform Definition
X
Legend
An unlinked hyperlink to sub-process
Exit pointCan be repeated
xStart point
End point
+ Combines flows
Decision point
A hyperlink to dependent sub-process
X
X
Page: 12
SubProcess - Create new project - servicesupper process
<<service>>create folder<<service>>create folder
<<service>>create file
<<service>>create file
Selectprojecttype
Selectprojecttype
<<service>>get project types
<<service>>get project types
Createtemplatebasedfiles
Createtemplatebasedfiles
<<service>>get template structure
<<service>>get template structureGather
projectinfo
Gatherproject
info
SelecttemplateSelect
template
<<service>>get templates
by project type and project’sruntime platforms
<<service>>get templates
by project type and project’sruntime platforms
Inform aboutduplicateprojectname
Inform aboutduplicateprojectname
SelectprojectsdefaultRPD
SelectprojectsdefaultRPD
Page: 13
SubProcess - Create Eclipse projectupper process
RuntimePlatform
Definitions
Projectinfo
Create project’s
basicstructure
Create project’s
basicstructure
Setprojects
classpath
Setprojects
classpath
DefaultDevices
CreatedefaultJAD
CreatedefaultJAD
[isMIDletproject]
x[duplicateProjectname]
x
Storeprojectdata
Storeprojectdata
X
Page: 14
SubProcess – Set Projects classpathupper process
RuntimePlatform
Definitions
SelectdefaultRPD
SelectdefaultRPD
SelectRPD’s default
device
SelectRPD’s default
device
DefaultDevices
GetlibraryJars
GetlibraryJars
RPD deviceRPD
Modifyproject’sclasspath
Modifyproject’sclasspath
Library Jarrefs.
Legend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform Definition
Page: 15
SubProcess - Create Eclipse project - servicesupper process
Create project’s
basicstructure
Create project’s
basicstructure
<<service>>get project structure
by project type
<<service>>get project structure
by project type
<<service>>create folder<<service>>create folder
<<service>>create file
<<service>>create file
<<Device Platform service>>get device’s library jar that
corresponds the RPD
<<Device Platform service>>get device’s library jar that
corresponds the RPD
GetlibraryJars
GetlibraryJars
Modifyproject’sclasspath
Modifyproject’sclasspath
<<Mtj Eclipse service>>set project classpath
<<Mtj Eclipse service>>set project classpath
<<service>>create project’s default JAD
configuration
<<service>>create project’s default JAD
configuration
CreatedefaultJAD
CreatedefaultJAD
Legend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform Definition
Page: 16
SubProcess – Create Projects Runtime Platformupper process
SelectDeviceSelectDevice[creation is
based ondeviceselection]
SelectDeviceGroup
SelectDeviceGroup
BrowseDeviceGroup
BrowseDeviceGroup
BrowseDevice
BrowseDevice
[needs tobrowsedevice]
[needs tobrowsedevicegroup]
Select oneRPD
of selecteddevice
Select oneRPD
of selecteddevice
SelectRuntimePlatform
Service APIs
SelectRuntimePlatform
Service APIs
[needs tomodifyselectedRPD]
BrowsedevicesBrowsedevices
[needs tomodifyAPIs]
[needs tocreatenewruntimeplatform]
RuntimePlatformDefinition
device
Get RPD ofDeviceGroup
Get RPD ofDeviceGroup
Select defaultdevice and
target devices
Select defaultdevice and
target devices
DefaultDevice
devicegroup
RuntimePlatformDefinition
RuntimePlatformDefinition
Legend:RPD = Runtime Platform DefinitionLegend:RPD = Runtime Platform Definition
Page: 17
SubProcess – Create Projects Runtime Platform servicesupper process
SelectDeviceSelectDevice
SelectDeviceGroup
SelectDeviceGroup
BrowseDeviceGroup
BrowseDeviceGroup
BrowseDevice
BrowseDevice
<< Device Platform service >>get device
<< Device Platform service >>get device
<< Device Platform service >>get device’s
runtime platform definitions
<< Device Platform service >>get device’s
runtime platform definitions
Select oneRPD
of selecteddevice
Select oneRPD
of selecteddevice
<< Device Platform service >>get device’s
runtime platform definitions
<< Device Platform service >>get device’s
runtime platform definitions
Get RPD ofDeviceGroup
Get RPD ofDeviceGroup
<<Device Manager service>>get Device Group’s RPD
<<Device Manager service>>get Device Group’s RPD<<Device Platform service>>
get available emulator devices<<Device Platform service>>get available emulator devices
SelectRuntimePlatform
Service APIs
SelectRuntimePlatform
Service APIs<<Device Manager service>>
get Device Groups<<Device Manager service>>
get Device Groups
BrowsedevicesBrowsedevices
<<Device Manager service>>get RPD’s devices
<<Device Manager service>>get RPD’s devices<<Device Manager service>>
get Device Group<<Device Manager service>>
get Device Group
<<Device Manager service>>get Device Group’s devices
<<Device Manager service>>get Device Group’s devices
<<Device Platform service>>get available devices of
Device Group
<<Device Platform service>>get available devices of
Device Group
<<Device Platform service>>get RPD’s devices
<<Device Platform service>>get RPD’s devices
Select defaultdevice and
target devices
Select defaultdevice and
target devices
Page: 18
SubProcess – Modify Application codeupper process
Designapplication
UI
Designapplication
UI
Designapplication
flow
Designapplication
flow
Create newapplicationcomponent
Create newapplicationcomponent
LocalizeapplicationLocalize
application
Edit sourcecode
Edit sourcecode
X X X
Get helpGet helpAdd
preprocessorblock
Addpreprocessor
block
Page: 19
SubProcess – Create new application componentupper process
Create newMIDlet
Create newMIDlet
[MIDPproject]
X
Page: 20
SubProcess – Create new MIDletupper process
Get MIDletdata
Get MIDletdata
SelectJAD
configuration
SelectJAD
configuration
Create newJAD
configuration forthe project
Create newJAD
configuration forthe project
[needs tocreatenew JAD]
Createnewclass
Createnewclass
[selectedJADconfiguration]
Add newMIDlet
to the JADconfiguration
Add newMIDlet
to the JADconfiguration
Page: 21
SubProcess – Create new MIDlet - servicesupper process
Get MIDletdata
Get MIDletdata
Createnewclass
Createnewclass
<<service>>add class
<<service>>add class
SelectJAD
configuration
SelectJAD
configuration
Add newMIDlet
to the JADconfiguration
Add newMIDlet
to the JADconfiguration
<<service>>get JAD configuration
<<service>>get JAD configuration
<<service>>store JAD configuration
<<service>>store JAD configuration
<<service>>get project JAD configurations
<<service>>get project JAD configurations
Create newJAD
configuration forthe project
Create newJAD
configuration forthe project
<<service>>create project’s JAD configurations
<<service>>create project’s JAD configurations
Page: 22
SubProcess – Design Application UIupper process
Selectclass
Selectclass
Get classdata
Get classdata
[needs tocreatenew class]
Showclass in UI
editor
Showclass in UI
editor
[selectedclass]
Add newUI
component
Add newUI
component
ModifyUI
classproperties
ModifyUI
classproperties
[needs tomodifyclassproperties]
Create newclass
Create newclass
EditUI
classsource code
EditUI
classsource code
[needs toeditsourcecode]
[needs toadd newUIcomponent]
ModifyUI
attributes
ModifyUI
attributes
[needs tomodifyUIattributes]
ModifyUI
events
ModifyUI
events
[needs tomodifyUIevents]
Page: 23
SubProcess – Design Application Flowupper process
Selectflow
Selectflow
[needs tocreatenew flow]
Showflow ineditor
Showflow ineditor
[selectedclass]
Add newflow
component
Add newflow
component
Modifyflow
properties
Modifyflow
properties
[needs tomodifyflowproperties]
Create newflow
Create newflow
Editflow
componentsource code
Editflow
componentsource code
[needs toeditflow componentsourcecode]
[needs toadd newflowcomponent]
Selectflow
component
Selectflow
component
[needs tomodifyflowcomponent]
Designapplication
UI
Designapplication
UIX
[selectedUI component]
Modifyflow
componentproperties
Modifyflow
componentproperties
[selectedothercomponent]
Generatesourcecode
Generatesourcecode
Selectflow
component
Selectflow
component
[selectedflowcomponent]
Page: 24
SubProcess - Create deployment packageupper process
Applicationproject
Deploymentpackage
Create MIDletdeployment
package
Create MIDletdeployment
package
[MIDletproject]
Create MEGletdeployment
package
Create MEGletdeployment
package
X
[MEGletproject]
Create CDCdeployment
package
Create CDCdeployment
package
[CDCproject]
Create resourcedeployment
package
Create resourcedeployment
package
[resourceproject]
Modifydeployment
packageproperties
Modifydeployment
packageproperties
[needs tomodifydepl.packageproperties]
Page: 25
SubProcess - Create MIDlet application packageupper process
Create new JAD
configuration
Create new JAD
configuration
Applicationproject
Deploymentpackage
Maintain JAD
configuration
Maintain JAD
configuration
[need to createnew JAD]
[need to maintainJAD]
[selected JAD config]SelectJAD
configuration
SelectJAD
configurationCreateJAD
CreateJAD
Get packagesaving location
Get packagesaving location
Deleteexisting
JADconfiguration
Deleteexisting
JADconfiguration
[Needs todeleteexistingconfig]
Renameexisting
JADconfiguration
Renameexisting
JADconfiguration
[Needs torenameexistingconfig]
Packageapplication code
& resources to JAR
Packageapplication code
& resources to JAR
[need to set saving location]
[use defaultsaving location]
Page: 26
SubProcess - Create application package - servicesupper process
Get packagesaving location
Get packagesaving location
SelectJAD
configuration
SelectJAD
configuration<<service>>
get project JAD configs<<service>>
get project JAD configs
CreateJAD
CreateJAD
Create new JAD
configuration
Create new JAD
configuration<<service>>
create project’s default JAD config<<service>>
create project’s default JAD config
Maintain JAD
configuration
Maintain JAD
configuration
<<service>>store JAD config
<<service>>store JAD config
<<service>>get project’s MIDlets
<<service>>get project’s MIDlets
Packageapplication code
& resources to JAR
Packageapplication code
& resources to JAR
<<service>>get project’s files
<<service>>get project’s files
<<service>>package files<<service>>package files
Renameexisting
JADconfiguration
Renameexisting
JADconfiguration
<<service>>store JAD config
<<service>>store JAD config
Deleteexisting
JADconfiguration
Deleteexisting
JADconfiguration
<<service>>remove JAD config
<<service>>remove JAD config
Page: 27
Application Development Process Descriptions
Signing
Page: 28
SubProcess - Sign the applicationupper process
Select public/private
key pairfrom list
Select public/private
key pairfrom list
Sign the application
package
Sign the application
package[key pair selected]
Maintainpublic/private
Keys & certificates
Maintainpublic/private
Keys & certificates
[need to maintain key pairs]
[key pair has associatedcertificates]
[key pair has NOTassociatedcertificates and certificatesare available]
x[key pair has NOTassociatedcertificates and certificatesare NOT available]
public/private key pair &certificates
Deploymentpackage
Deploymentpackage[Signed]
X
Page: 29
SubProcess – Maintain public/private keys & certificatesupper process
Select public/private
key pairfrom list
Select public/private
key pairfrom list
[key pair selected]
Create newpublic/private
key pair
Create newpublic/private
key pair
[need to createa new key pair]
Create a CSR to
the key pair
Create a CSR to
the key pair
Importpublic/private
key pair
Importpublic/private
key pair
[need to importa new key pair]
[need to createa new CSR]
Import certificate tothe key pair
Import certificate tothe key pair
[need to importa new CSR]
[need to importa new certificate]
x
Inform aboutcertificate and
key pairmismatch
Inform aboutcertificate and
key pairmismatch
Select public/private
key pairfrom list
Select public/private
key pairfrom list
[need to removekey pair]
Remove public/private
key pair
Remove public/private
key pair
[key pair selected]
Page: 30
SubProcess - Sign the application - servicesupper process
Select public/private
key pairfrom list
Select public/private
key pairfrom list
Sign the application
package
Sign the application
package
Create newpublic/private
key pair
Create newpublic/private
key pair
Create a CSR to
the key pair
Create a CSR to
the key pair
Importpublic/private
key pair
Importpublic/private
key pair
Import certificate tothe key pair
Import certificate tothe key pair
<<service>>read certificate file
<<service>>read certificate file
<<service>>assosiate certificate
to the key pair
<<service>>assosiate certificate
to the key pair
<<service>>store certificate file
<<service>>store certificate file
<<service>>get public/private key pairs
<<service>>get public/private key pairs
<<service>>store public/private key pair
<<service>>store public/private key pair
<<service>>read public/private key pair
from file
<<service>>read public/private key pair
from file
Remove public/private
key pair
Remove public/private
key pair
<<service>>remove key pair and assosiate certificates
<<service>>remove key pair and assosiate certificates
<<service>>store CSR
<<service>>store CSR <<service>>
sign application package<<service>>
sign application package
<<service>>send CSR
<<service>>send CSR
Page: 31
Application Development Process Descriptions
Deployment and Running
Page: 32
SubProcess – Deploy the Applicationupper process
Deploymentpackage
Select deployment
package
Select deployment
package
[need to selectdeploymentpackage]
[selecteddeploymentpackage] Browse
deploymentpackage
Browsedeployment
package
[need to browsedeploymentpackage]
SelectDevicesSelect
Devices
Browseplatform and
device
Browseplatform and
device
Deploypackage to
devices
Deploypackage to
devices
[deployment toconnected device]
[selecteddevices]
Maintainplatform,device &
connection
Maintainplatform,device &
connection
[needs tomaintaindeviceplatform]
[use project’sdefaultdevices]
[needs toselectdevices]
[needs tobrowseDeviceplatform]
Page: 33
SubProcess – Deploy the Application - servicesupper process
Select deployment
package
Select deployment
package
<<service>>get available
application packages
<<service>>get available
application packages
Browsedeployment
package
Browsedeployment
package
Deploypackage to
devices
Deploypackage to
devices
<<service>>get device’s device platform
<<service>>get device’s device platform
<<service>>get application package
content info
<<service>>get application package
content info <<service>>deploy application package
to device platform
<<service>>deploy application package
to device platform
SelectdevicesSelect
devices<<service>>
get device platforms<<service>>
get device platforms
Maintainplatform,device &
connection
Maintainplatform,device &
connection
<<service>>get platform and device
configs
<<service>>get platform and device
configs
<<service>>set platform and device
configs
<<service>>set platform and device
configs
Browseplatform and
device
Browseplatform and
device
<<service>>get platform and device
configs
<<service>>get platform and device
configs
Page: 34
SubProcess – Run the Applicationupper process
Applicationproject
Select deviceSelect device
[needsto selectdevice]
Maintainplatform,device &
connection
Maintainplatform,device &
connection
[needs tomaintaindeviceplatform]
[targetdevice]
[useproject’sdefaultdevice]
Start applicationin the devicewith debugparameters
Start applicationin the devicewith debugparameters
[needsto debugapplication]
Startapplication
in thedevice
Startapplication
in thedevice
Page: 35
SubProcess – Run the Application - servicesupper process
Select deviceSelect device
<<service>>get available devices
of Runtime Platform Definition
<<service>>get available devices
of Runtime Platform DefinitionStart application
in the devicewith debugparameters
Start applicationin the devicewith debugparameters
<<service>>start application
with debug parameters
<<service>>start application
with debug parameters
<<service>>get debug parameters
<<service>>get debug parameters
Maintainplatform,device &
connection
Maintainplatform,device &
connection
<<service>>get device platforms
of Runtime Platform Definition
<<service>>get device platforms
of Runtime Platform Definition
<<service>>get device platform configs
<<service>>get device platform configs
<<service>>set device platform configs
<<service>>set device platform configs Start
applicationin thedevice
Startapplication
in thedevice
<<service>>start application<<service>>
start application
Page: 36
Fragmentation management
Page: 37
SubProcess – Define device groups