SlideShare una empresa de Scribd logo
1 de 44
Mobile Devices in
Software
Engineering
Week I
Overview
• What is a Mobile Application?
• Why Develop Mobile Applications?
• Challenges of Mobile Application Development
• Mobile Application Development Tools
• Ad-hoc Development
• Wireless Software Engineering Model
http://cmer.cis.uoguelph.ca 2
What is a Mobile Application?
“A wireless mobile application is defined as a software
application, a wireless service or a mobile service that
can be either pushed to users’ handheld wireless devices
or downloaded and installed, over the air, on these
devices.” [1]
“An application which resides in the mobile phone or
which is accessed/used by a mobile phone over any
channel such as SMS, MMS, GPRS, Voice, DTMF” [2]
3http://cmer.cis.uoguelph.ca
What is a Mobile Application?
• Two types of mobile applications can be accessed by
wireless devices, the first type:
• Browser-Based
– A Browser-Based application is an application that is
accessed through the use of the mobile device’s web
browser
– Browser-Based applications are coded with the use of
a markup language
– See Wireless Application Protocol
http://cmer.cis.uoguelph.ca 4
What is a Mobile Application?
• Native Applications
– Native applications are those applications that are
found entirely on the mobile device
– These applications have their own runtime
environment for execution
– Highly interactive applications are really only feasible
when they are native applications
– See Java ME Micro Edition (Java ME)
5http://cmer.cis.uoguelph.ca
Why Develop Mobile
Applications?
• Estimated 2.3 billion global mobile phone subscribers
in 2006 which will grow to 3.3 billion by 2011 [3]
• Provide mobile phone users with applications that can
keep them productive, informed, entertained, or
connected whenever they feel the need
• Large potential for financial gain in the field of mobile
applications
• Solve problems which have many challenges and
obstacles
6http://cmer.cis.uoguelph.ca
Mobile Applications
• Mobile Applications can be found in any industry, they
have been developed for:
– Mobile Gaming (see gameloft)
– Mobile Banking (see RBC)
– Mobile Text, Presentation, and Spreadsheet (see
Microsoft Office Mobile)
– Social Networking (see Facebook)
– Mobile News (see Yahoo! Mobile News)
– Location Aware Services (see Loopt)
http://cmer.cis.uoguelph.ca 7
Mobile Application
Development Challenges
• Development of mobile applications provides for many
challenges and obstacles that are not commonly found
in the development of applications for desktop
computers
• The challenges faced by developers are found in:
– Heterogeneity of mobile devices
– Security
– Network
http://cmer.cis.uoguelph.ca 8
Challenge: Mobile Devices
• Java is a portable implementation language, any
application created with Java can be run on any
machine which contains a Java Runtime Environment
(JRE)
• J2ME, is similarly a portable language, which can be
run on any mobile device which contains a JRE,
however this portability is severely affected by the
heterogeneity of the mobile devices currently on the
market
• Mobile devices display a wide range of characteristics
that will greatly effect a mobile application’s
performance, usability, functionality, etc.
http://cmer.cis.uoguelph.ca 9
Challenge: Mobile Devices
• Display/Screen Size
– Mobile devices come in many different screen sizes
– Consider the differentiating screen sizes between
smartphones and cell phones
– Smartphones offer the user a generally larger and
higher resolution display screen, contrasted to cell
phones which generally provide lower resolution and
smaller display size
http://cmer.cis.uoguelph.ca 10
Challenge: Mobile Devices
• Memory
– Just as screen size differs from device to device, the
amount of available memory and differs from device to
device
– Developers must create applications which have a
minimal memory footprint on the device while being of
service to the user
– Memory must also be carefully managed during the
execution of any mobile application as it can
potentially render the phone unusable until
termination of the application
http://cmer.cis.uoguelph.ca 11
Challenge: Mobile Devices
• Processing Power
– Another sign of the heterogeneity of mobile devices is
the processing power
– The CPUs differ from phone to phone and this must be
taken into consideration by developers
– Developers cannot create applications that require the
user to wait an unreasonable amount of time for the
service to load
http://cmer.cis.uoguelph.ca 12
Challenge: Mobile Devices
• Input Devices
– The input devices on mobile devices range from full
QWERTY keyboards to three letter button inputs
– This means developers must take into account how
much text is required by the user to input into their
application and what kind of difficulties they may
experience based on their device
http://cmer.cis.uoguelph.ca 13
Challenge: Network
• Transmission Errors
– When creating mobile applications that utilize network
connections there is a variety of issues that can effect
the application
– Wireless networks are exposed to interference which
can alter the message received by the client or the
server then what was originally sent
– Applications must take into account these potential
problems especially in financially sensitive services
http://cmer.cis.uoguelph.ca 14
Challenge: Network
• Message Latency
– Messages that are to be sent to clients or servers can
be delayed due to a variety of reasons such as
overloaded network nodes or servers, dead or turned
off cell phones, distance to travel
– Applications must take this into account so as to
avoid sending servers or clients stale information
http://cmer.cis.uoguelph.ca 15
Challenge: Network
• Bandwidth Usage
– Wireless customers are forced to pay fees to access
the wireless network and internet
– While phones with WIFI capabilities allow for some
users to have free connectivity at times it is important
to keep messages to a minimum and compact
– Applications that cost a lot to use will not be popular
with many of the financially conscious users
http://cmer.cis.uoguelph.ca 16
Challenge: Security
• Wireless networks by default are not as secure as
wired networks, it is important to note that message
can be intercepted when travelling through the air
• Mobile applications must secure the sensitive data that
is being transmitted over the air
• There are different methods to implement security but
it must be relative to the information we want to secure
and the resources that we wish to use for securing it
http://cmer.cis.uoguelph.ca 17
Solution: Mobile Devices
• Display/Screen Size
– There is no one single method to overcome to problem
of different screen sizes however there are some ways
to help
1: When dealing with graphics that should be placed
on edges use methods which retrieve the edge of the
display
2: When creating an for a particular set of mobile
devices (ie. Blackberry’s, cell phones) create the
layout to the smallest display size
http://cmer.cis.uoguelph.ca 18
Solution: Mobile Devices
• Memory
– Compact data representation will help reduce the
amount of memory it requires to load and use your
application
– Use optimization techniques to reduce the amount of
code required to write your application (see J2ME
tech tips)
– Compress any graphic images that you use in your
application and save graphics in a format which takes
the least space
http://cmer.cis.uoguelph.ca 19
Solution: Mobile Devices
• Processing Power
– A result of reducing the memory consumption and
footprint of the application should help time required
to load applications
– If the mobile application has a client-server
architecture consider the partitioning of the
application
– Allow the server to do the brunt of the calculations
and processing work and pass the information to the
mobile device for less CPU intensive calculations
http://cmer.cis.uoguelph.ca 20
Solution: Mobile Devices
• Input Devices
– To overcome some of the problems that can occur
with the different input devices make input
requirements concise, therefore the user should be
able to perform the most common tasks in an
application with the least amount of button presses
– Provide users with menus when possible to help
reduce the amount of button input required
http://cmer.cis.uoguelph.ca 21
Solution: Network
• Transmission Errors
– Transmissions errors may be inevitable when dealing
with wireless networks but there are some wireless
network protocols than can correct or at the least
detect these errors
– One solution does not exist for every single type of
transmission error that may occur, it is important to
plan for these types of errors and be able to deal with
them accordingly
http://cmer.cis.uoguelph.ca 22
Solution: Network
• Message Latency
– In a client-server architecture the server can store
messages that do not arrive at the mobile device and
attempt to resend them at specific intervals
– Servers can also store the message and send it when
the mobile device reconnects to the system
– Let the user know if they receive a message that can
possibly be out of date or no longer valid, this could be
done using timestamps
http://cmer.cis.uoguelph.ca 23
Solution: Network
• Bandwidth Usage
– Pass as little messages as required between the client
and the server
– Keep the messages as short as possible, you can use
symbols to represent commands for the server
– If your application must use a lot of bandwidth at least
notify the user of this fact
http://cmer.cis.uoguelph.ca 24
Solution: Security
• Important to implement security to a level which is
appropriate for the data being exchanged
• Mobile devices, having limited processing power,
cannot generate large cryptographic keys in a
reasonable amount of time
• There has been research into creating keys for
algorithms such as RSA and others and sending this
to the mobile device to use but this is an area that is
still developing
http://cmer.cis.uoguelph.ca 25
Mobile Application Development
• Knowing the challenges faced by developers with
mobile applications we can look at the tools and steps
developers take when creating applications
• Mobile application development differs from
development of applications on desktops because
mobile applications are developed on one platform and
then deployed on a totally different platform
• This leads to many issues that developers face after
moving their application to another platform and
stresses an importance on testing
http://cmer.cis.uoguelph.ca 26
Development Tools
• From a software perspective there are several
Integrated Development Environments (IDEs) that are
available for use such as:
– Sun Java Wireless Toolkit for CLDC
– Blackberry Java Development Environment
– Metrowerks CodeWarrior Wireless Studio
– Borland JBuilder with MobileSet
http://cmer.cis.uoguelph.ca 27
Emulators/Simulators
• The IDE’s mentioned come with emulators to mimic the functionality and look seen
on a mobile device, while these are extremely helpful for the developer there is
ultimately no substitute for the real device
http://cmer.cis.uoguelph.ca 28
Ad-hoc Development
• A common development process is to create the
mobile application within the preferred IDE
• The application is then tested in the IDE’s emulation
environment
• Many of the IDE’s contain different devices which can
be emulated for the developer to test their application
• The final step is to test the application on a physical
device and if applicable, network
• There is no substitute for testing the application on a
real device as it will provide the developer with real
insight as to the characteristics of the mobile phone
http://cmer.cis.uoguelph.ca 29
Wireless Software Engineering
• The previous method, while it is likely sufficient for
personal application development, is missing some
features that are commonly found in software
engineering
• A model found in (Mahmoud, Maamar, 2006)
addresses these missing areas and proposes a
development process for mobile applications
• The model from a visual perspective is similar to the
spiral model found in software engineering
http://cmer.cis.uoguelph.ca 30
Wireless Software Engineering Model
http://cmer.cis.uoguelph.ca 31
Planning
Mobile User
Analysis
Scenario Analysis Architectural Design
Navigation &
User Interface
Design
Implementation
Testing
Deployment
Customer
Evaluation
Maintenance
Wireless Software Engineering Model
• This model is very similar to the spiral model,
however it has a better focus towards mobile
application development
• This model can also be used to manage a project
with multiple stages of application deployment
• This model has ten phases and one of the concepts
behind it is the knowledge that testing and design
take special consideration in mobile application
development
http://cmer.cis.uoguelph.ca 32
Model Phases
• The Wireless Software Engineering Model contains
ten phases:
– Planning
– Mobile User Analysis
– Scenario Analysis
– Architectural Design
– Navigation & User Interface Design
– Implementation
– Testing
– Deployment
– Customer Evaluation
– Maintenance
http://cmer.cis.uoguelph.ca 33
Planning
• The planning phase deals with:
– Identifying the objectives of the application
– Specifying the scope of the first step
– Estimating the possible cost of the project
– Analyzing the possible risks involved
– Creating a tentative schedule
http://cmer.cis.uoguelph.ca 34
Mobile User Analysis
• This phase deals with understanding our target
audience for the application
• We need to examine the types of users that with use
the application and any special requirements or
functionality they require
• We can gather information by:
– Asking experts in the field
– Reading literature on the topic
– Asking current users
http://cmer.cis.uoguelph.ca 35
Scenario Analysis
• Similar to requirements analysis in classical software
engineering
• We focus on three areas:
– Screen and Interaction Analysis
• How the user will interact with the system, how
content will be displayed
– Usage Analysis
• The functionality of the system, use cases should be
considered to relay this information
– Environment Analysis
• The interaction between this system and other
networks and devices
http://cmer.cis.uoguelph.ca 36
Architectural Design
• This phase deals with the architecture of the system
when dealing with network based applications
• It should discuss how the system will be split and the
challenges and benefits of such a design
• As discussed, attention must be paid to message
latency and application partitioning to ensure
performance, reliability, and security
http://cmer.cis.uoguelph.ca 37
Navigation &
User Interface Design
• The design of the user interface is done here and is
important to the success of the system
• A poorly designed interface will detract the user from
the system while a clean and easy to use interface will
show professionalism and perception
• Keep in mind the challenges discussed previously
with user input, screen sizes, and display
characteristics as these play important roles in
designing an interface
• Screen mock-ups are important to display the look
and feel to potential customers
http://cmer.cis.uoguelph.ca 38
Implementation
• Implementation of the application is done in this
phase with the use of any number of development
tools
• Code Conventions, class and object diagrams, API
specifications can all be included in any
documentation that is created at this point for the
system
• This allows developers who join the project at later
stages to follow the same format and style as the
original authors
http://cmer.cis.uoguelph.ca 39
Testing
• Testing is extremely important in mobile application
development not only due to the heterogeneity of
mobile devices
• It is important to test not only in an emulator but on
the physical device as well, and to test on all or as
many physical devices as the application can be
located
• Testing also assists us to remove bugs and flaws in
programs which become inevitable in larger systems
as they become complex
• Use Cases are a helpful tool in generating test cases
for the system
http://cmer.cis.uoguelph.ca 40
Deployment
• Deployment of the application on physical devices will
allow you to see the system in the real world
• Applications may be fine in an emulator but when
transferred to a mobile device developers may find the
application slow, impossible to use, not functioning all
together, or consuming too much bandwidth
• It may not economically feasible to test on every
possible device that a system may be used on but a
wide variety of devices should be tested
http://cmer.cis.uoguelph.ca 41
Customer Evaluation
• At this point the application is ready for download by
customers in the network
• Customers should be given a way of providing
feedback to the developers and reporting any issues
they encounter when using the application
• Consider providing an email or web form where users
can fill in the necessary info or provide an automated
process which sends the error to the server
http://cmer.cis.uoguelph.ca 42
Maintenance
• Maintenance of the system after deployment deals with
several issues:
– Resolving any bugs found in the application and
creating necessary patches
– Improving the quality of the application with upgrades
– Providing new services and capabilities to customers
http://cmer.cis.uoguelph.ca 43
References
• [1] Mahmoud, Qusay H., and Zakaria Maamar. "Engineering
Wireless Mobile Applications." Int. J. of Information Technology
and Web Engineering 1.1 (2006): 58-73.
• [2] Gunaratne, Ruchith. "Mobile Applications." hSenid Software
International. <ruchith.files.wordpress.com/2006/11/mobile-
computing-mobile-applications-1.ppt>
• [3] Global Mobile Phone Subscribers Expected to Reach 3.3 Billion
by 2011. Market Intelligence Center. Taipei: Market Intelligence
Center, 2007. 14 May 2008
<http://mic.iii.org.tw/english/press/research_PR.asp?
func=press&Doc_sqno=4641>.
• [4] Kochnev, Dmitry S., and Andrey A. Terekhov. "Surviving Java
for Mobiles." Ed. Sumi Helal. Pervasive Computing (2003): 90-95.
http://cmer.cis.uoguelph.ca 44

Más contenido relacionado

Similar a Soft eng slides_1

MD-III-CH-ppt.ppt
MD-III-CH-ppt.pptMD-III-CH-ppt.ppt
MD-III-CH-ppt.pptbharatt7
 
MOBILE COMPUTING Unit 5.pptx
MOBILE COMPUTING Unit 5.pptxMOBILE COMPUTING Unit 5.pptx
MOBILE COMPUTING Unit 5.pptxkarthiksmart21
 
Week 7 lecture material
Week 7 lecture materialWeek 7 lecture material
Week 7 lecture materialAnkit Gupta
 
Identifying Bottlenecks in Mobile Cloud Computing (MCC)
Identifying Bottlenecks in Mobile Cloud Computing (MCC)Identifying Bottlenecks in Mobile Cloud Computing (MCC)
Identifying Bottlenecks in Mobile Cloud Computing (MCC)Dr. Ranbijay Kumar
 
Mobile computing
Mobile computingMobile computing
Mobile computingamellia27
 
wireless notice board
 wireless notice board wireless notice board
wireless notice boardAnmol Purohit
 
PST SC015 Chapter 1 Intro. to IT 2017/2018
PST SC015 Chapter 1 Intro. to IT 2017/2018PST SC015 Chapter 1 Intro. to IT 2017/2018
PST SC015 Chapter 1 Intro. to IT 2017/2018Fizaril Amzari Omar
 
Synapse india reviews on mobile devices
Synapse india reviews on mobile devicesSynapse india reviews on mobile devices
Synapse india reviews on mobile devicesTarunsingh198
 
PDT DC015 Chapter 1 Introduction to IT 2017/18
PDT DC015 Chapter 1 Introduction to IT 2017/18PDT DC015 Chapter 1 Introduction to IT 2017/18
PDT DC015 Chapter 1 Introduction to IT 2017/18Fizaril Amzari Omar
 
Introduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & GatewaysIntroduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & Gatewaystawi123
 
MD-I-CH-ppt.ppt
MD-I-CH-ppt.pptMD-I-CH-ppt.ppt
MD-I-CH-ppt.pptbharatt7
 
Mobile app testing
Mobile app testingMobile app testing
Mobile app testingsanpalan
 
Mobile testing
Mobile testingMobile testing
Mobile testingsanpalan
 
Cloud_Computing.pptx
Cloud_Computing.pptxCloud_Computing.pptx
Cloud_Computing.pptxYash771676
 
E- Notice Board Presentation
E- Notice Board PresentationE- Notice Board Presentation
E- Notice Board Presentationayushi jain
 

Similar a Soft eng slides_1 (20)

Sdpd 1
Sdpd 1Sdpd 1
Sdpd 1
 
MD-III-CH-ppt.ppt
MD-III-CH-ppt.pptMD-III-CH-ppt.ppt
MD-III-CH-ppt.ppt
 
Roadmap 1 12-02
Roadmap 1 12-02Roadmap 1 12-02
Roadmap 1 12-02
 
MOBILE COMPUTING Unit 5.pptx
MOBILE COMPUTING Unit 5.pptxMOBILE COMPUTING Unit 5.pptx
MOBILE COMPUTING Unit 5.pptx
 
Week 7 lecture material
Week 7 lecture materialWeek 7 lecture material
Week 7 lecture material
 
Identifying Bottlenecks in Mobile Cloud Computing (MCC)
Identifying Bottlenecks in Mobile Cloud Computing (MCC)Identifying Bottlenecks in Mobile Cloud Computing (MCC)
Identifying Bottlenecks in Mobile Cloud Computing (MCC)
 
Mobile computing
Mobile computingMobile computing
Mobile computing
 
wireless notice board
 wireless notice board wireless notice board
wireless notice board
 
Mobile computin intro.pptx
Mobile computin intro.pptxMobile computin intro.pptx
Mobile computin intro.pptx
 
PST SC015 Chapter 1 Intro. to IT 2017/2018
PST SC015 Chapter 1 Intro. to IT 2017/2018PST SC015 Chapter 1 Intro. to IT 2017/2018
PST SC015 Chapter 1 Intro. to IT 2017/2018
 
Synapse india reviews on mobile devices
Synapse india reviews on mobile devicesSynapse india reviews on mobile devices
Synapse india reviews on mobile devices
 
PDT DC015 Chapter 1 Introduction to IT 2017/18
PDT DC015 Chapter 1 Introduction to IT 2017/18PDT DC015 Chapter 1 Introduction to IT 2017/18
PDT DC015 Chapter 1 Introduction to IT 2017/18
 
Introduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & GatewaysIntroduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & Gateways
 
Home automation
Home automationHome automation
Home automation
 
MD-I-CH-ppt.ppt
MD-I-CH-ppt.pptMD-I-CH-ppt.ppt
MD-I-CH-ppt.ppt
 
Mobile app testing
Mobile app testingMobile app testing
Mobile app testing
 
Mobile testing
Mobile testingMobile testing
Mobile testing
 
Cloud_Computing.pptx
Cloud_Computing.pptxCloud_Computing.pptx
Cloud_Computing.pptx
 
Remote PC Administration Using Mobile Phone
Remote PC Administration Using Mobile PhoneRemote PC Administration Using Mobile Phone
Remote PC Administration Using Mobile Phone
 
E- Notice Board Presentation
E- Notice Board PresentationE- Notice Board Presentation
E- Notice Board Presentation
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Soft eng slides_1

  • 2. Overview • What is a Mobile Application? • Why Develop Mobile Applications? • Challenges of Mobile Application Development • Mobile Application Development Tools • Ad-hoc Development • Wireless Software Engineering Model http://cmer.cis.uoguelph.ca 2
  • 3. What is a Mobile Application? “A wireless mobile application is defined as a software application, a wireless service or a mobile service that can be either pushed to users’ handheld wireless devices or downloaded and installed, over the air, on these devices.” [1] “An application which resides in the mobile phone or which is accessed/used by a mobile phone over any channel such as SMS, MMS, GPRS, Voice, DTMF” [2] 3http://cmer.cis.uoguelph.ca
  • 4. What is a Mobile Application? • Two types of mobile applications can be accessed by wireless devices, the first type: • Browser-Based – A Browser-Based application is an application that is accessed through the use of the mobile device’s web browser – Browser-Based applications are coded with the use of a markup language – See Wireless Application Protocol http://cmer.cis.uoguelph.ca 4
  • 5. What is a Mobile Application? • Native Applications – Native applications are those applications that are found entirely on the mobile device – These applications have their own runtime environment for execution – Highly interactive applications are really only feasible when they are native applications – See Java ME Micro Edition (Java ME) 5http://cmer.cis.uoguelph.ca
  • 6. Why Develop Mobile Applications? • Estimated 2.3 billion global mobile phone subscribers in 2006 which will grow to 3.3 billion by 2011 [3] • Provide mobile phone users with applications that can keep them productive, informed, entertained, or connected whenever they feel the need • Large potential for financial gain in the field of mobile applications • Solve problems which have many challenges and obstacles 6http://cmer.cis.uoguelph.ca
  • 7. Mobile Applications • Mobile Applications can be found in any industry, they have been developed for: – Mobile Gaming (see gameloft) – Mobile Banking (see RBC) – Mobile Text, Presentation, and Spreadsheet (see Microsoft Office Mobile) – Social Networking (see Facebook) – Mobile News (see Yahoo! Mobile News) – Location Aware Services (see Loopt) http://cmer.cis.uoguelph.ca 7
  • 8. Mobile Application Development Challenges • Development of mobile applications provides for many challenges and obstacles that are not commonly found in the development of applications for desktop computers • The challenges faced by developers are found in: – Heterogeneity of mobile devices – Security – Network http://cmer.cis.uoguelph.ca 8
  • 9. Challenge: Mobile Devices • Java is a portable implementation language, any application created with Java can be run on any machine which contains a Java Runtime Environment (JRE) • J2ME, is similarly a portable language, which can be run on any mobile device which contains a JRE, however this portability is severely affected by the heterogeneity of the mobile devices currently on the market • Mobile devices display a wide range of characteristics that will greatly effect a mobile application’s performance, usability, functionality, etc. http://cmer.cis.uoguelph.ca 9
  • 10. Challenge: Mobile Devices • Display/Screen Size – Mobile devices come in many different screen sizes – Consider the differentiating screen sizes between smartphones and cell phones – Smartphones offer the user a generally larger and higher resolution display screen, contrasted to cell phones which generally provide lower resolution and smaller display size http://cmer.cis.uoguelph.ca 10
  • 11. Challenge: Mobile Devices • Memory – Just as screen size differs from device to device, the amount of available memory and differs from device to device – Developers must create applications which have a minimal memory footprint on the device while being of service to the user – Memory must also be carefully managed during the execution of any mobile application as it can potentially render the phone unusable until termination of the application http://cmer.cis.uoguelph.ca 11
  • 12. Challenge: Mobile Devices • Processing Power – Another sign of the heterogeneity of mobile devices is the processing power – The CPUs differ from phone to phone and this must be taken into consideration by developers – Developers cannot create applications that require the user to wait an unreasonable amount of time for the service to load http://cmer.cis.uoguelph.ca 12
  • 13. Challenge: Mobile Devices • Input Devices – The input devices on mobile devices range from full QWERTY keyboards to three letter button inputs – This means developers must take into account how much text is required by the user to input into their application and what kind of difficulties they may experience based on their device http://cmer.cis.uoguelph.ca 13
  • 14. Challenge: Network • Transmission Errors – When creating mobile applications that utilize network connections there is a variety of issues that can effect the application – Wireless networks are exposed to interference which can alter the message received by the client or the server then what was originally sent – Applications must take into account these potential problems especially in financially sensitive services http://cmer.cis.uoguelph.ca 14
  • 15. Challenge: Network • Message Latency – Messages that are to be sent to clients or servers can be delayed due to a variety of reasons such as overloaded network nodes or servers, dead or turned off cell phones, distance to travel – Applications must take this into account so as to avoid sending servers or clients stale information http://cmer.cis.uoguelph.ca 15
  • 16. Challenge: Network • Bandwidth Usage – Wireless customers are forced to pay fees to access the wireless network and internet – While phones with WIFI capabilities allow for some users to have free connectivity at times it is important to keep messages to a minimum and compact – Applications that cost a lot to use will not be popular with many of the financially conscious users http://cmer.cis.uoguelph.ca 16
  • 17. Challenge: Security • Wireless networks by default are not as secure as wired networks, it is important to note that message can be intercepted when travelling through the air • Mobile applications must secure the sensitive data that is being transmitted over the air • There are different methods to implement security but it must be relative to the information we want to secure and the resources that we wish to use for securing it http://cmer.cis.uoguelph.ca 17
  • 18. Solution: Mobile Devices • Display/Screen Size – There is no one single method to overcome to problem of different screen sizes however there are some ways to help 1: When dealing with graphics that should be placed on edges use methods which retrieve the edge of the display 2: When creating an for a particular set of mobile devices (ie. Blackberry’s, cell phones) create the layout to the smallest display size http://cmer.cis.uoguelph.ca 18
  • 19. Solution: Mobile Devices • Memory – Compact data representation will help reduce the amount of memory it requires to load and use your application – Use optimization techniques to reduce the amount of code required to write your application (see J2ME tech tips) – Compress any graphic images that you use in your application and save graphics in a format which takes the least space http://cmer.cis.uoguelph.ca 19
  • 20. Solution: Mobile Devices • Processing Power – A result of reducing the memory consumption and footprint of the application should help time required to load applications – If the mobile application has a client-server architecture consider the partitioning of the application – Allow the server to do the brunt of the calculations and processing work and pass the information to the mobile device for less CPU intensive calculations http://cmer.cis.uoguelph.ca 20
  • 21. Solution: Mobile Devices • Input Devices – To overcome some of the problems that can occur with the different input devices make input requirements concise, therefore the user should be able to perform the most common tasks in an application with the least amount of button presses – Provide users with menus when possible to help reduce the amount of button input required http://cmer.cis.uoguelph.ca 21
  • 22. Solution: Network • Transmission Errors – Transmissions errors may be inevitable when dealing with wireless networks but there are some wireless network protocols than can correct or at the least detect these errors – One solution does not exist for every single type of transmission error that may occur, it is important to plan for these types of errors and be able to deal with them accordingly http://cmer.cis.uoguelph.ca 22
  • 23. Solution: Network • Message Latency – In a client-server architecture the server can store messages that do not arrive at the mobile device and attempt to resend them at specific intervals – Servers can also store the message and send it when the mobile device reconnects to the system – Let the user know if they receive a message that can possibly be out of date or no longer valid, this could be done using timestamps http://cmer.cis.uoguelph.ca 23
  • 24. Solution: Network • Bandwidth Usage – Pass as little messages as required between the client and the server – Keep the messages as short as possible, you can use symbols to represent commands for the server – If your application must use a lot of bandwidth at least notify the user of this fact http://cmer.cis.uoguelph.ca 24
  • 25. Solution: Security • Important to implement security to a level which is appropriate for the data being exchanged • Mobile devices, having limited processing power, cannot generate large cryptographic keys in a reasonable amount of time • There has been research into creating keys for algorithms such as RSA and others and sending this to the mobile device to use but this is an area that is still developing http://cmer.cis.uoguelph.ca 25
  • 26. Mobile Application Development • Knowing the challenges faced by developers with mobile applications we can look at the tools and steps developers take when creating applications • Mobile application development differs from development of applications on desktops because mobile applications are developed on one platform and then deployed on a totally different platform • This leads to many issues that developers face after moving their application to another platform and stresses an importance on testing http://cmer.cis.uoguelph.ca 26
  • 27. Development Tools • From a software perspective there are several Integrated Development Environments (IDEs) that are available for use such as: – Sun Java Wireless Toolkit for CLDC – Blackberry Java Development Environment – Metrowerks CodeWarrior Wireless Studio – Borland JBuilder with MobileSet http://cmer.cis.uoguelph.ca 27
  • 28. Emulators/Simulators • The IDE’s mentioned come with emulators to mimic the functionality and look seen on a mobile device, while these are extremely helpful for the developer there is ultimately no substitute for the real device http://cmer.cis.uoguelph.ca 28
  • 29. Ad-hoc Development • A common development process is to create the mobile application within the preferred IDE • The application is then tested in the IDE’s emulation environment • Many of the IDE’s contain different devices which can be emulated for the developer to test their application • The final step is to test the application on a physical device and if applicable, network • There is no substitute for testing the application on a real device as it will provide the developer with real insight as to the characteristics of the mobile phone http://cmer.cis.uoguelph.ca 29
  • 30. Wireless Software Engineering • The previous method, while it is likely sufficient for personal application development, is missing some features that are commonly found in software engineering • A model found in (Mahmoud, Maamar, 2006) addresses these missing areas and proposes a development process for mobile applications • The model from a visual perspective is similar to the spiral model found in software engineering http://cmer.cis.uoguelph.ca 30
  • 31. Wireless Software Engineering Model http://cmer.cis.uoguelph.ca 31 Planning Mobile User Analysis Scenario Analysis Architectural Design Navigation & User Interface Design Implementation Testing Deployment Customer Evaluation Maintenance
  • 32. Wireless Software Engineering Model • This model is very similar to the spiral model, however it has a better focus towards mobile application development • This model can also be used to manage a project with multiple stages of application deployment • This model has ten phases and one of the concepts behind it is the knowledge that testing and design take special consideration in mobile application development http://cmer.cis.uoguelph.ca 32
  • 33. Model Phases • The Wireless Software Engineering Model contains ten phases: – Planning – Mobile User Analysis – Scenario Analysis – Architectural Design – Navigation & User Interface Design – Implementation – Testing – Deployment – Customer Evaluation – Maintenance http://cmer.cis.uoguelph.ca 33
  • 34. Planning • The planning phase deals with: – Identifying the objectives of the application – Specifying the scope of the first step – Estimating the possible cost of the project – Analyzing the possible risks involved – Creating a tentative schedule http://cmer.cis.uoguelph.ca 34
  • 35. Mobile User Analysis • This phase deals with understanding our target audience for the application • We need to examine the types of users that with use the application and any special requirements or functionality they require • We can gather information by: – Asking experts in the field – Reading literature on the topic – Asking current users http://cmer.cis.uoguelph.ca 35
  • 36. Scenario Analysis • Similar to requirements analysis in classical software engineering • We focus on three areas: – Screen and Interaction Analysis • How the user will interact with the system, how content will be displayed – Usage Analysis • The functionality of the system, use cases should be considered to relay this information – Environment Analysis • The interaction between this system and other networks and devices http://cmer.cis.uoguelph.ca 36
  • 37. Architectural Design • This phase deals with the architecture of the system when dealing with network based applications • It should discuss how the system will be split and the challenges and benefits of such a design • As discussed, attention must be paid to message latency and application partitioning to ensure performance, reliability, and security http://cmer.cis.uoguelph.ca 37
  • 38. Navigation & User Interface Design • The design of the user interface is done here and is important to the success of the system • A poorly designed interface will detract the user from the system while a clean and easy to use interface will show professionalism and perception • Keep in mind the challenges discussed previously with user input, screen sizes, and display characteristics as these play important roles in designing an interface • Screen mock-ups are important to display the look and feel to potential customers http://cmer.cis.uoguelph.ca 38
  • 39. Implementation • Implementation of the application is done in this phase with the use of any number of development tools • Code Conventions, class and object diagrams, API specifications can all be included in any documentation that is created at this point for the system • This allows developers who join the project at later stages to follow the same format and style as the original authors http://cmer.cis.uoguelph.ca 39
  • 40. Testing • Testing is extremely important in mobile application development not only due to the heterogeneity of mobile devices • It is important to test not only in an emulator but on the physical device as well, and to test on all or as many physical devices as the application can be located • Testing also assists us to remove bugs and flaws in programs which become inevitable in larger systems as they become complex • Use Cases are a helpful tool in generating test cases for the system http://cmer.cis.uoguelph.ca 40
  • 41. Deployment • Deployment of the application on physical devices will allow you to see the system in the real world • Applications may be fine in an emulator but when transferred to a mobile device developers may find the application slow, impossible to use, not functioning all together, or consuming too much bandwidth • It may not economically feasible to test on every possible device that a system may be used on but a wide variety of devices should be tested http://cmer.cis.uoguelph.ca 41
  • 42. Customer Evaluation • At this point the application is ready for download by customers in the network • Customers should be given a way of providing feedback to the developers and reporting any issues they encounter when using the application • Consider providing an email or web form where users can fill in the necessary info or provide an automated process which sends the error to the server http://cmer.cis.uoguelph.ca 42
  • 43. Maintenance • Maintenance of the system after deployment deals with several issues: – Resolving any bugs found in the application and creating necessary patches – Improving the quality of the application with upgrades – Providing new services and capabilities to customers http://cmer.cis.uoguelph.ca 43
  • 44. References • [1] Mahmoud, Qusay H., and Zakaria Maamar. "Engineering Wireless Mobile Applications." Int. J. of Information Technology and Web Engineering 1.1 (2006): 58-73. • [2] Gunaratne, Ruchith. "Mobile Applications." hSenid Software International. <ruchith.files.wordpress.com/2006/11/mobile- computing-mobile-applications-1.ppt> • [3] Global Mobile Phone Subscribers Expected to Reach 3.3 Billion by 2011. Market Intelligence Center. Taipei: Market Intelligence Center, 2007. 14 May 2008 <http://mic.iii.org.tw/english/press/research_PR.asp? func=press&Doc_sqno=4641>. • [4] Kochnev, Dmitry S., and Andrey A. Terekhov. "Surviving Java for Mobiles." Ed. Sumi Helal. Pervasive Computing (2003): 90-95. http://cmer.cis.uoguelph.ca 44