SlideShare a Scribd company logo
1 of 26
IT-4545
Mobile Computing
Ch#3: Applications
Slides conceived from: Programming Mobile Devices: An Introduction for Practitioners Tommi Mikkonen
2007 John Wiley & Sons, Ltd
What Constitutes an Application?
•Transformators that translate a given input to a
corresponding output
•At microscale, rapidly reacting to smallish changes
in their environment
•Changes can take place in parallel
•Become reactive systems
•Become more complex entities
What Constitutes an Application?
•Definition “it is a piece of software that can be
started and terminated individually, and that it
performs a certain task”.
•The term ‘application’ includes the necessary user
interfaces and related facilities
•Software as an application need to have interface
mechanism for execution platform
•For instance, in C/C++ function main, from which
the execution of the application begins
•Platforms define a specific way to link applications
to the surrounding infrastructure
What Constitutes an Application?
•How the application is to be used is the depth of its
integration to the rest of the system?
•Following cases can be identified:
- Application is independent of the rest of the system. Such
types of applications are self-contained, and for the most
part, they simply rely on the platform’s low-level services.
- Applications share library code. In principle, this in fact
takes place when the platform provides services to new
applications. However, the more application specific the
library is, the more effort must be invested in keeping
applications compatible with each other when the library
version is altered.
What Constitutes an Application?
- Application directly shares data with some other
application. For instance, one can compose a personal
information management and planning center application
that collects all the data from contacts, todo list, calendar,
and so forth. Then, when updates are made via one
application, the data should be made available for other
applications as well. As a result, applications are
becoming tangled.
- Applications can be embedded in each other. For
instance, when sending a multimedia message, it may be
possible to run a camera application invisibly to the user
to record the data to be sent.
Workflow for Application
Development
•Consistency of user experience
•Aspect can be affected by a number of design
choices
•Resulting in consistent usability
•Actions must be simple and single yet focused
Workflow for Application
Development
•A common workflow with special focus on usability
and user activities, has been defined by Salmre
(2005), consisting of:
- Scoping
- Performance considerations
- User interface design
- Data model and memory concerns
- Communications and I/O
Workflow for Application
Development
•Scoping
- what the application can do and what it cannot
- Scoping can be helped by conceptualizing the application
with pictures, mockups, and creating prototypes.
- One should also consider the relative importance of the
functions to users
- For instance, if clock times are rarely entered
•Performance Considerations
- General responsiveness metrics are needed for
applications
- How fast it should be to open a menu in the application
- Use an older (or simply less capable) hardware for early
experiments
Workflow for Application
Development
- All assumptions should be tested with a real
implementation
- Overall performance is often the most important aspect
- Then, data structures, memory layouts, algorithms, and
the way the user interface is constructed
- One should also consider that overly focusing on
performance can be harmful for portability
•User Interface Design
- If the performance provided enough then focus on the
right user interface
- End-user productivity and responsiveness as the most
important principles
• Productivity - actions for the end-user can be easily and rapidly
carried out
• Responsiveness - feeling of being in control while performing the
activities
Workflow for Application
Development
- User is never left wondering what the device is actually
doing
- For example, the phone claims to be ready after a reboot
even if it has not yet loaded contacts from SIM
- Keep the user aware of what has really been saved to
disk, if the user wishes to turn off the device
- Consider available facilities
- For instance, it seems completely realistic to edit Excel
macros when using a Communicator type of device, but
being able to read the figures might be enough in a
normal mobile phone where more restricted resources
are available
- Consider whether to aim at special-purpose devices and
applications or to a single tool that does everything
Workflow for Application
Development
•Data Model and Memory Concerns
- Mobile devices offer rather restricted facilities for
application development
- Concerns are how data can be located in the memory,
how the system behaves in peak conditions, and how the
application disposes data
- Data structures and memory use in general must be
carefully considered.
- Also dynamically loaded libraries can be considered as
an issue that is closely related to data model and memory
concerns
Workflow for Application
Development
•Communications and I/O
- Communications and I/O are defined determines how the
application communicates with the resources
- Devices’ internal resources, such as files and
subsystems, as well as resources that are external to the
device
- For instance, socket-based communications, files on
servers, Web Services, and remote databases
- Another important aspect is the level of abstraction of
transmitted and stored data. For example, one can
consider the following levels of abstraction in using files:
• Binary streams, where the data is stored in a fashion that is
unreadable without auxiliary software,
• Text streams, where data becomes more readable, but may
still remain somewhat unstructured and unreadable for a
human reader,
• XML forward-only readers and writers, where more meta-
information is included,
• XML Document Object Model, where complex automatic
processing of included data is usually enabled
Techniques for Composing
Applications
•Event-Based Programming
- GUI element to generate events
- For instance, cursor moves over a button, a button click
- Callbacks are used to link events and code
- One can register an operation that is called when a
certain event occurs, like a key press
- Implementing a callback
• One is to pass a reference to a function during registration. When an
event occurs, the function is called via the reference
• Follow the Observer design pattern
- Fundamental difference between event-based
programming and the traditional programming approach
• in the traditional approach, the service caller knows the provider of the
service,
• in the event-driven model, the event source only creates the event, and it
is up to the components that have registered themselves to handle the
event to perform their actions
Techniques for Composing
Applications: MVC
•Model-View-Controller as the Application
Architecture
- presentation-abstraction-control (PAC) pattern is similar
to MVC for the mobile environment
- MVC model is to separate all the functions of the
application to one of the following three categories
• Model, which contains data structures of the application.
• Views, which contain user interface(s) of the application.
• Controllers, which allow the user to control the behavior of the
application.
Techniques for Composing
Applications: MVC
Techniques for Composing
Applications: MVC
Techniques for Composing
Applications: MVC
•Model
- The model is to host all the information regarding the
data of the application
- All operations regarding the data are included
- Model is also usually responsible for managing data
representation in permanent memory
- Whenever the data is manipulated, the model informs
views and controllers about the change
- Models remain relatively independent of all user interface
operations, they can usually be reused in different
environments.
Techniques for Composing
Applications: MVC
•View
- display data to the user
- Whenever a model is updated, the views that are
registered to observe the model are notified about the
update
- Query information about the update and display the
upgraded data
•Controller
- Controller listens to the commands the application
receives and translates them into a form that can be
interpreted by the model
- Sometimes views and controllers can be integrated, if
their operations are closely coupled
Techniques for Composing
Applications: Auxiliary Files
•Resources and other auxiliary files that are
commonly needed by applications
•Such as, application connected with graphics to
improve look and feel
•Considerable factor of memory consumption of a
mobile application
•Menus.
- In many environments, resource files can be used to
define the structure of menus that are offered by
applications.
- The rationale is that in order to modify menus, application
code need not be modified, but it is enough to redefine
some
elements in the auxiliary file.
Techniques for Composing
Applications: Auxiliary Files
•Binary data.
- graphics, such as icons, are used for creating a special
look for applications
- Various formats that can be used in general, different
platforms may have some restrictions on their use in
different contexts.
- Connecting graphics to program behavior can take a
similar form as with menus
- Similarly to graphics, other types of binary data can be
used as well
- For instance sounds and audio data
Techniques for Composing
Applications: Auxiliary Files
•Localization information.
- Such information includes definitions needed for multiple
language versions
- They can be given together with other resources, but this
is not a necessity
- Instead, any file can be used for aiding in localization,
assuming that the rest of the program is composed
respecting the localization principles
- However, when the underlying platform offers its own
practices for this, the platform’s fashion should be
predominantly used
Techniques for Composing
Applications: Auxiliary Files
•Other auxiliary files.
- Auxiliary files needed by applications are many.
- For instance, there can be data files whose contents are
needed for creating a valid initial state.
- Usually, one should compose applications so that even if
some of the data files are missing, it would be possible to
run the application.
- A related issue is that in some systems, it is advisable to
implement applications such that they always have a
default data file into which data can be saved if no
filename is given for saving it.
- In addition to data files, there can be settings or profile
files.
- Again, it is commonly a good design goal to be able to
run the application with minimal or even with fully missing
settings files.
Techniques for Composing Applications:
Managing Applications
•A number of management operations can be
associated with applications running in mobile
devices. For instance,
•Retrieval.
- Applications can be retrieved from some location in the
network or some other media.
- For instance, physical media such as memory cards can
be used.
- However, for wireless devices, downloading applications
over the air (OTA) is probably the most prominent
alternative.
Techniques for Composing Applications:
Managing Applications
•Installation.
- Installs an application to a device.
- The installation may include several intermediate steps
- Such as verification that the installation is allowed and
transformation, where the downloaded software can be
transformed to a suitable execution format.
•Launching.
- The application must obviously be startable once it has
been downloaded and installed in the device
Techniques for Composing Applications:
Managing Applications
•Version management.
- It may be necessary to upgrade already installed
applications when new versions are released.
- It is also possible that upgrading one version of a
subsystem (or application) requires an upgrade of other
parts of the system as well.
•Removal.
- Applications can be removed from the device when they
are no longer needed, or the storage space occupied by
them is needed for some other use
Techniques for Composing
Applications: Practicalities
•Different platforms reflect the different origins and
intentions, which leads to different characteristics.
•As a result, they are suited for accomplishing
different things. Moreover, the size of the step to
compose the first application in a certain
environment can vary considerably.
•For example, with mobile Java, as we will soon
study, it is natural to start with only a single class
and start extending the application.
•Symbian OS, on the other hand, shows signs of a
system that has been targeted for more complex
systems, where an established design has been
composed before advancing to coding.

More Related Content

What's hot

User Interface Design - Module 1 Introduction
User Interface Design - Module 1 IntroductionUser Interface Design - Module 1 Introduction
User Interface Design - Module 1 IntroductionbrindaN
 
SELECT THE PROPER KINDS OF WINDOWS
SELECT THE PROPER KINDS OF WINDOWSSELECT THE PROPER KINDS OF WINDOWS
SELECT THE PROPER KINDS OF WINDOWSDhanya LK
 
Design patterns for mobile apps
Design patterns for mobile appsDesign patterns for mobile apps
Design patterns for mobile appsIvano Malavolta
 
Chapter 12 user interface design
Chapter 12 user interface designChapter 12 user interface design
Chapter 12 user interface designSHREEHARI WADAWADAGI
 
User interface design
User interface designUser interface design
User interface designSlideshare
 
The Golden Rules by Theo Mandel - Software Engineering
The Golden Rules by Theo Mandel - Software EngineeringThe Golden Rules by Theo Mandel - Software Engineering
The Golden Rules by Theo Mandel - Software EngineeringAmit Baghel
 
SELECT THE PROPER DEVICE BASED CONTROLS
SELECT THE PROPER DEVICE BASED CONTROLSSELECT THE PROPER DEVICE BASED CONTROLS
SELECT THE PROPER DEVICE BASED CONTROLSDhanya LK
 
Designing applications with multimedia capabilities
Designing applications with multimedia capabilitiesDesigning applications with multimedia capabilities
Designing applications with multimedia capabilitiesK Senthil Kumar
 
Mobile apps in environment of limited connectivity new rubric solutions
Mobile apps in environment of limited connectivity  new rubric solutionsMobile apps in environment of limited connectivity  new rubric solutions
Mobile apps in environment of limited connectivity new rubric solutionsNewrubric
 
Chapter 4 - Display Design
Chapter 4  - Display DesignChapter 4  - Display Design
Chapter 4 - Display DesignMuhammad Najib
 
05_system architecture
05_system architecture05_system architecture
05_system architectureJadavsejal
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principlesDavid Little
 
Chapter 10 authoring
Chapter 10 authoringChapter 10 authoring
Chapter 10 authoringshelly3160
 
Application Design - Part 1
Application Design - Part 1Application Design - Part 1
Application Design - Part 1Kelley Howell
 
Management Information System UX Case study
Management Information System UX Case studyManagement Information System UX Case study
Management Information System UX Case studyAchin Gupta
 
Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.Belal Mohammed
 
Chapter1(hci)
Chapter1(hci)Chapter1(hci)
Chapter1(hci)Latesh Malik
 

What's hot (19)

User Interface Design - Module 1 Introduction
User Interface Design - Module 1 IntroductionUser Interface Design - Module 1 Introduction
User Interface Design - Module 1 Introduction
 
SELECT THE PROPER KINDS OF WINDOWS
SELECT THE PROPER KINDS OF WINDOWSSELECT THE PROPER KINDS OF WINDOWS
SELECT THE PROPER KINDS OF WINDOWS
 
Design patterns for mobile apps
Design patterns for mobile appsDesign patterns for mobile apps
Design patterns for mobile apps
 
Chapter 12 user interface design
Chapter 12 user interface designChapter 12 user interface design
Chapter 12 user interface design
 
User interface design
User interface designUser interface design
User interface design
 
The Golden Rules by Theo Mandel - Software Engineering
The Golden Rules by Theo Mandel - Software EngineeringThe Golden Rules by Theo Mandel - Software Engineering
The Golden Rules by Theo Mandel - Software Engineering
 
SELECT THE PROPER DEVICE BASED CONTROLS
SELECT THE PROPER DEVICE BASED CONTROLSSELECT THE PROPER DEVICE BASED CONTROLS
SELECT THE PROPER DEVICE BASED CONTROLS
 
Designing applications with multimedia capabilities
Designing applications with multimedia capabilitiesDesigning applications with multimedia capabilities
Designing applications with multimedia capabilities
 
Mobile apps in environment of limited connectivity new rubric solutions
Mobile apps in environment of limited connectivity  new rubric solutionsMobile apps in environment of limited connectivity  new rubric solutions
Mobile apps in environment of limited connectivity new rubric solutions
 
Chapter 4 - Display Design
Chapter 4  - Display DesignChapter 4  - Display Design
Chapter 4 - Display Design
 
05_system architecture
05_system architecture05_system architecture
05_system architecture
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principles
 
Chapter 10 authoring
Chapter 10 authoringChapter 10 authoring
Chapter 10 authoring
 
Application Design - Part 1
Application Design - Part 1Application Design - Part 1
Application Design - Part 1
 
Management Information System UX Case study
Management Information System UX Case studyManagement Information System UX Case study
Management Information System UX Case study
 
Access 08
Access 08Access 08
Access 08
 
BITS Now
BITS NowBITS Now
BITS Now
 
Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.
 
Chapter1(hci)
Chapter1(hci)Chapter1(hci)
Chapter1(hci)
 

Similar to 5 applications bb

Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxtaxegap762
 
Unit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 CompleteUnit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 CompleteRaj vardhan
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...confluent
 
Agent-Based Workflow
Agent-Based WorkflowAgent-Based Workflow
Agent-Based WorkflowLarry Suarez
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...confluent
 
82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsn82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsnshivam003d
 
Unit 5- Cloud Applications.pdf
Unit 5- Cloud Applications.pdfUnit 5- Cloud Applications.pdf
Unit 5- Cloud Applications.pdfMaryJacob24
 
Impact 2013 2963 - IBM Business Process Manager Top Practices
Impact 2013 2963 - IBM Business Process Manager Top PracticesImpact 2013 2963 - IBM Business Process Manager Top Practices
Impact 2013 2963 - IBM Business Process Manager Top PracticesBrian Petrini
 
End User Computing
End User ComputingEnd User Computing
End User ComputingRam Dutt Shukla
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
unit 5 cloud.pptx
unit 5 cloud.pptxunit 5 cloud.pptx
unit 5 cloud.pptxMrPrathapG
 
Webinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with MigrationWebinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with Migrationpanagenda
 
Customer relationship management
Customer relationship managementCustomer relationship management
Customer relationship managementRohit Gupta
 
Chapter 1. Itroduction To DBMS -.pptx
Chapter 1. Itroduction To DBMS -.pptxChapter 1. Itroduction To DBMS -.pptx
Chapter 1. Itroduction To DBMS -.pptxsantosh96234
 
Software Engineering _ Introduction
Software Engineering _ IntroductionSoftware Engineering _ Introduction
Software Engineering _ IntroductionThenmozhiK5
 

Similar to 5 applications bb (20)

Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptx
 
Unit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 CompleteUnit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 Complete
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
 
Agent-Based Workflow
Agent-Based WorkflowAgent-Based Workflow
Agent-Based Workflow
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
 
82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsn82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsn
 
Unit 5- Cloud Applications.pdf
Unit 5- Cloud Applications.pdfUnit 5- Cloud Applications.pdf
Unit 5- Cloud Applications.pdf
 
Unit1 dbms
Unit1 dbmsUnit1 dbms
Unit1 dbms
 
Impact 2013 2963 - IBM Business Process Manager Top Practices
Impact 2013 2963 - IBM Business Process Manager Top PracticesImpact 2013 2963 - IBM Business Process Manager Top Practices
Impact 2013 2963 - IBM Business Process Manager Top Practices
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
software engineering
software engineering software engineering
software engineering
 
End User Computing
End User ComputingEnd User Computing
End User Computing
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
unit 5 cloud.pptx
unit 5 cloud.pptxunit 5 cloud.pptx
unit 5 cloud.pptx
 
Webinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with MigrationWebinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with Migration
 
3 tier architecture
3 tier architecture3 tier architecture
3 tier architecture
 
Customer relationship management
Customer relationship managementCustomer relationship management
Customer relationship management
 
Chapter 1. Itroduction To DBMS -.pptx
Chapter 1. Itroduction To DBMS -.pptxChapter 1. Itroduction To DBMS -.pptx
Chapter 1. Itroduction To DBMS -.pptx
 
Class 6
Class 6Class 6
Class 6
 
Software Engineering _ Introduction
Software Engineering _ IntroductionSoftware Engineering _ Introduction
Software Engineering _ Introduction
 

More from Shahid Riaz

Shimla deputation (1906)
Shimla deputation (1906)Shimla deputation (1906)
Shimla deputation (1906)Shahid Riaz
 
#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailvi#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailviShahid Riaz
 
How to program in c++ with 100 examples
How to program in c++ with 100 examples  How to program in c++ with 100 examples
How to program in c++ with 100 examples Shahid Riaz
 
Virtual private networks in theory and practice
Virtual private networks in theory and practiceVirtual private networks in theory and practice
Virtual private networks in theory and practiceShahid Riaz
 
Database systems administration week 1
Database systems administration week 1Database systems administration week 1
Database systems administration week 1Shahid Riaz
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02Shahid Riaz
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02Shahid Riaz
 
Database systems administration traning 01
Database systems administration traning 01Database systems administration traning 01
Database systems administration traning 01Shahid Riaz
 
Database systems administration traning 0
Database systems administration traning 0Database systems administration traning 0
Database systems administration traning 0Shahid Riaz
 
Database systems administration traning 04
Database systems administration traning  04Database systems administration traning  04
Database systems administration traning 04Shahid Riaz
 
Managing people and organizing team
Managing people and organizing teamManaging people and organizing team
Managing people and organizing teamShahid Riaz
 
Lec 1 intro to internet
Lec 1 intro to internetLec 1 intro to internet
Lec 1 intro to internetShahid Riaz
 
Course guidlines course book it 3548
Course guidlines course book it 3548Course guidlines course book it 3548
Course guidlines course book it 3548Shahid Riaz
 
Lecture12 software design class diagram
Lecture12 software design class diagramLecture12 software design class diagram
Lecture12 software design class diagramShahid Riaz
 
Lecture11 use case sequence diagram
Lecture11 use case sequence diagramLecture11 use case sequence diagram
Lecture11 use case sequence diagramShahid Riaz
 
Lecture10 use case model operation contracts
Lecture10 use case model operation contractsLecture10 use case model operation contracts
Lecture10 use case model operation contractsShahid Riaz
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizingShahid Riaz
 
Lecture8 system sequence
Lecture8 system sequenceLecture8 system sequence
Lecture8 system sequenceShahid Riaz
 
Lecture7 use case modeling
Lecture7 use case modelingLecture7 use case modeling
Lecture7 use case modelingShahid Riaz
 
Lecture6 activity diagrams
Lecture6 activity diagramsLecture6 activity diagrams
Lecture6 activity diagramsShahid Riaz
 

More from Shahid Riaz (20)

Shimla deputation (1906)
Shimla deputation (1906)Shimla deputation (1906)
Shimla deputation (1906)
 
#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailvi#Syed ahmad shaheed barailvi
#Syed ahmad shaheed barailvi
 
How to program in c++ with 100 examples
How to program in c++ with 100 examples  How to program in c++ with 100 examples
How to program in c++ with 100 examples
 
Virtual private networks in theory and practice
Virtual private networks in theory and practiceVirtual private networks in theory and practice
Virtual private networks in theory and practice
 
Database systems administration week 1
Database systems administration week 1Database systems administration week 1
Database systems administration week 1
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02
 
Database systems administration traning 02
Database systems administration traning 02Database systems administration traning 02
Database systems administration traning 02
 
Database systems administration traning 01
Database systems administration traning 01Database systems administration traning 01
Database systems administration traning 01
 
Database systems administration traning 0
Database systems administration traning 0Database systems administration traning 0
Database systems administration traning 0
 
Database systems administration traning 04
Database systems administration traning  04Database systems administration traning  04
Database systems administration traning 04
 
Managing people and organizing team
Managing people and organizing teamManaging people and organizing team
Managing people and organizing team
 
Lec 1 intro to internet
Lec 1 intro to internetLec 1 intro to internet
Lec 1 intro to internet
 
Course guidlines course book it 3548
Course guidlines course book it 3548Course guidlines course book it 3548
Course guidlines course book it 3548
 
Lecture12 software design class diagram
Lecture12 software design class diagramLecture12 software design class diagram
Lecture12 software design class diagram
 
Lecture11 use case sequence diagram
Lecture11 use case sequence diagramLecture11 use case sequence diagram
Lecture11 use case sequence diagram
 
Lecture10 use case model operation contracts
Lecture10 use case model operation contractsLecture10 use case model operation contracts
Lecture10 use case model operation contracts
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizing
 
Lecture8 system sequence
Lecture8 system sequenceLecture8 system sequence
Lecture8 system sequence
 
Lecture7 use case modeling
Lecture7 use case modelingLecture7 use case modeling
Lecture7 use case modeling
 
Lecture6 activity diagrams
Lecture6 activity diagramsLecture6 activity diagrams
Lecture6 activity diagrams
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 

5 applications bb

  • 1. IT-4545 Mobile Computing Ch#3: Applications Slides conceived from: Programming Mobile Devices: An Introduction for Practitioners Tommi Mikkonen 2007 John Wiley & Sons, Ltd
  • 2. What Constitutes an Application? •Transformators that translate a given input to a corresponding output •At microscale, rapidly reacting to smallish changes in their environment •Changes can take place in parallel •Become reactive systems •Become more complex entities
  • 3. What Constitutes an Application? •Definition “it is a piece of software that can be started and terminated individually, and that it performs a certain task”. •The term ‘application’ includes the necessary user interfaces and related facilities •Software as an application need to have interface mechanism for execution platform •For instance, in C/C++ function main, from which the execution of the application begins •Platforms define a specific way to link applications to the surrounding infrastructure
  • 4. What Constitutes an Application? •How the application is to be used is the depth of its integration to the rest of the system? •Following cases can be identified: - Application is independent of the rest of the system. Such types of applications are self-contained, and for the most part, they simply rely on the platform’s low-level services. - Applications share library code. In principle, this in fact takes place when the platform provides services to new applications. However, the more application specific the library is, the more effort must be invested in keeping applications compatible with each other when the library version is altered.
  • 5. What Constitutes an Application? - Application directly shares data with some other application. For instance, one can compose a personal information management and planning center application that collects all the data from contacts, todo list, calendar, and so forth. Then, when updates are made via one application, the data should be made available for other applications as well. As a result, applications are becoming tangled. - Applications can be embedded in each other. For instance, when sending a multimedia message, it may be possible to run a camera application invisibly to the user to record the data to be sent.
  • 6. Workflow for Application Development •Consistency of user experience •Aspect can be affected by a number of design choices •Resulting in consistent usability •Actions must be simple and single yet focused
  • 7. Workflow for Application Development •A common workflow with special focus on usability and user activities, has been defined by Salmre (2005), consisting of: - Scoping - Performance considerations - User interface design - Data model and memory concerns - Communications and I/O
  • 8. Workflow for Application Development •Scoping - what the application can do and what it cannot - Scoping can be helped by conceptualizing the application with pictures, mockups, and creating prototypes. - One should also consider the relative importance of the functions to users - For instance, if clock times are rarely entered •Performance Considerations - General responsiveness metrics are needed for applications - How fast it should be to open a menu in the application - Use an older (or simply less capable) hardware for early experiments
  • 9. Workflow for Application Development - All assumptions should be tested with a real implementation - Overall performance is often the most important aspect - Then, data structures, memory layouts, algorithms, and the way the user interface is constructed - One should also consider that overly focusing on performance can be harmful for portability •User Interface Design - If the performance provided enough then focus on the right user interface - End-user productivity and responsiveness as the most important principles • Productivity - actions for the end-user can be easily and rapidly carried out • Responsiveness - feeling of being in control while performing the activities
  • 10. Workflow for Application Development - User is never left wondering what the device is actually doing - For example, the phone claims to be ready after a reboot even if it has not yet loaded contacts from SIM - Keep the user aware of what has really been saved to disk, if the user wishes to turn off the device - Consider available facilities - For instance, it seems completely realistic to edit Excel macros when using a Communicator type of device, but being able to read the figures might be enough in a normal mobile phone where more restricted resources are available - Consider whether to aim at special-purpose devices and applications or to a single tool that does everything
  • 11. Workflow for Application Development •Data Model and Memory Concerns - Mobile devices offer rather restricted facilities for application development - Concerns are how data can be located in the memory, how the system behaves in peak conditions, and how the application disposes data - Data structures and memory use in general must be carefully considered. - Also dynamically loaded libraries can be considered as an issue that is closely related to data model and memory concerns
  • 12. Workflow for Application Development •Communications and I/O - Communications and I/O are defined determines how the application communicates with the resources - Devices’ internal resources, such as files and subsystems, as well as resources that are external to the device - For instance, socket-based communications, files on servers, Web Services, and remote databases - Another important aspect is the level of abstraction of transmitted and stored data. For example, one can consider the following levels of abstraction in using files: • Binary streams, where the data is stored in a fashion that is unreadable without auxiliary software, • Text streams, where data becomes more readable, but may still remain somewhat unstructured and unreadable for a human reader, • XML forward-only readers and writers, where more meta- information is included, • XML Document Object Model, where complex automatic processing of included data is usually enabled
  • 13. Techniques for Composing Applications •Event-Based Programming - GUI element to generate events - For instance, cursor moves over a button, a button click - Callbacks are used to link events and code - One can register an operation that is called when a certain event occurs, like a key press - Implementing a callback • One is to pass a reference to a function during registration. When an event occurs, the function is called via the reference • Follow the Observer design pattern - Fundamental difference between event-based programming and the traditional programming approach • in the traditional approach, the service caller knows the provider of the service, • in the event-driven model, the event source only creates the event, and it is up to the components that have registered themselves to handle the event to perform their actions
  • 14. Techniques for Composing Applications: MVC •Model-View-Controller as the Application Architecture - presentation-abstraction-control (PAC) pattern is similar to MVC for the mobile environment - MVC model is to separate all the functions of the application to one of the following three categories • Model, which contains data structures of the application. • Views, which contain user interface(s) of the application. • Controllers, which allow the user to control the behavior of the application.
  • 17. Techniques for Composing Applications: MVC •Model - The model is to host all the information regarding the data of the application - All operations regarding the data are included - Model is also usually responsible for managing data representation in permanent memory - Whenever the data is manipulated, the model informs views and controllers about the change - Models remain relatively independent of all user interface operations, they can usually be reused in different environments.
  • 18. Techniques for Composing Applications: MVC •View - display data to the user - Whenever a model is updated, the views that are registered to observe the model are notified about the update - Query information about the update and display the upgraded data •Controller - Controller listens to the commands the application receives and translates them into a form that can be interpreted by the model - Sometimes views and controllers can be integrated, if their operations are closely coupled
  • 19. Techniques for Composing Applications: Auxiliary Files •Resources and other auxiliary files that are commonly needed by applications •Such as, application connected with graphics to improve look and feel •Considerable factor of memory consumption of a mobile application •Menus. - In many environments, resource files can be used to define the structure of menus that are offered by applications. - The rationale is that in order to modify menus, application code need not be modified, but it is enough to redefine some elements in the auxiliary file.
  • 20. Techniques for Composing Applications: Auxiliary Files •Binary data. - graphics, such as icons, are used for creating a special look for applications - Various formats that can be used in general, different platforms may have some restrictions on their use in different contexts. - Connecting graphics to program behavior can take a similar form as with menus - Similarly to graphics, other types of binary data can be used as well - For instance sounds and audio data
  • 21. Techniques for Composing Applications: Auxiliary Files •Localization information. - Such information includes definitions needed for multiple language versions - They can be given together with other resources, but this is not a necessity - Instead, any file can be used for aiding in localization, assuming that the rest of the program is composed respecting the localization principles - However, when the underlying platform offers its own practices for this, the platform’s fashion should be predominantly used
  • 22. Techniques for Composing Applications: Auxiliary Files •Other auxiliary files. - Auxiliary files needed by applications are many. - For instance, there can be data files whose contents are needed for creating a valid initial state. - Usually, one should compose applications so that even if some of the data files are missing, it would be possible to run the application. - A related issue is that in some systems, it is advisable to implement applications such that they always have a default data file into which data can be saved if no filename is given for saving it. - In addition to data files, there can be settings or profile files. - Again, it is commonly a good design goal to be able to run the application with minimal or even with fully missing settings files.
  • 23. Techniques for Composing Applications: Managing Applications •A number of management operations can be associated with applications running in mobile devices. For instance, •Retrieval. - Applications can be retrieved from some location in the network or some other media. - For instance, physical media such as memory cards can be used. - However, for wireless devices, downloading applications over the air (OTA) is probably the most prominent alternative.
  • 24. Techniques for Composing Applications: Managing Applications •Installation. - Installs an application to a device. - The installation may include several intermediate steps - Such as verification that the installation is allowed and transformation, where the downloaded software can be transformed to a suitable execution format. •Launching. - The application must obviously be startable once it has been downloaded and installed in the device
  • 25. Techniques for Composing Applications: Managing Applications •Version management. - It may be necessary to upgrade already installed applications when new versions are released. - It is also possible that upgrading one version of a subsystem (or application) requires an upgrade of other parts of the system as well. •Removal. - Applications can be removed from the device when they are no longer needed, or the storage space occupied by them is needed for some other use
  • 26. Techniques for Composing Applications: Practicalities •Different platforms reflect the different origins and intentions, which leads to different characteristics. •As a result, they are suited for accomplishing different things. Moreover, the size of the step to compose the first application in a certain environment can vary considerably. •For example, with mobile Java, as we will soon study, it is natural to start with only a single class and start extending the application. •Symbian OS, on the other hand, shows signs of a system that has been targeted for more complex systems, where an established design has been composed before advancing to coding.