Mobile Applicatoin Architecture
Mobile Applicatoin Architecture
Design Description
Version 0.6
Doc. No.:
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
Revision History
Date Version Description Author
2010-10-07 0.1 Initial Draft, Mobile application Josip Petrić
2010-10-07 0.2 Web application Sandi Winter
2010-10-08 0.3 Web application (Database model) Igor Bučec
2010-10-08 0.4 Introduction and minor revisions Sureshkumar Yadav
2010-10-08 0.5 Web application (MVC architecture) Igor Bučec
2010-10-08 0.6 Web application (Error handling) Sandi Winter
Page 3
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
Table of Contents
1. Introduction 5
1.1 Purpose of this document 5
1.2 Intended Audience 5
1.3 Scope 5
1.4 Definitions and acronyms 5
1.4.1 Definitions 5
1.4.2 Acronyms and abbreviations 5
1.5 References 6
2. External interfaces 6
2.1 Web application user interface 6
2.2 Web user interface login examples 7
2.3 Web application modularization 7
2.4 Mobile application user interface 7
3. Software architecture 9
3.1 Conceptual design 9
3.1.1 Web application architecture 9
3.1.2 Mobile application architecture 11
3.2 System specification 11
3.3 Error handling 12
5. Approvals 17
Page 4
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
1. Introduction
The purpose of this document is to present the design description of Mass Observation project.
1.3 Scope
This document describes the detailed design of the project. The web application, database application and
mobile application architectures and the interfaces are explained in this document.
1.4.1 Definitions
Keyword Definitions
MOb Mass Observation
SCORE International student contest on software engineering
Acronym or
Definitions
abbreviation
W3C World Wide Web Consortium
CSS Cascading Style Sheets
HTML HyperText Markup Language
MA Mobile Application
UI User Interface
MVC Model-View-Controller pattern
OE Observation Event
XML EXtensible Markup Language
GUI Graphical User Interface
MOb Mass Observation
PHP Hypertext Preprocessor
Page 5
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
1.5 References
2. External interfaces
The MOb system presents a web-based GUI to the user for purpose of creating observation events and
monitoring it. Mobile based GUI is provided for the purpose of receiving instructions and recording observation
events.
The user interface of the Mass Observation system is a standards-compliant and user-friendly web application
user interface.
It is based on HTML, CSS and JavaScript (with the jQuery framework). This conforms to the best practices that
the W3C recommends.
The sketch of the web application user interface shows regions of the site the user is going to interact with.
The navigation is based on two menus. We have a main menu that is generated depending on the permissions
that a user has. Side menu displays the options that are available depending on the module that was selected in
main menu.
All users can see the user bar for logout, change profile preferences and additional functions if necessary.
Forms, lists, status messages and other main content will appear within a Main content region.
Copyrights, site info and a link list are displayed in the footer part.
Page 6
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
Each user can have permissions/roles to specific modules (Initiator, Observer, Consumer and Admin). Main
menu will be generated by special library depending on the permissions that a user has. Each of the modules
will be implemented within its controller. The controller will load the view with main content and side menu.
Mobile application user interface is composed of standard Android GUI components. User interface is built to
be user friendly and intuitive. Part of user interface is written using XML layout files and part are generated
using Java (in code generated components). XML layout is used to generate fixed user interface component.
Java is used to generate user interface components at run-time.
Page 7
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
Figure 3: Mobile application Login View Figure 4: Mobile application Main View sketch
sketch
Mobile application user interface is composed of several views which change regarding users actions. On the
pictures above four main views are shown: login view, main application view, new OE view and OE. Using
main application view (Figure 2) user can download new Observation Event or access to currently available
Observation Events. Using New OE view user can accept or decline OE invitation. Using OE view user can
make observations for selected OE.
Page 8
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
3. Software architecture
Page 9
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
The aim of using MVC architecture is to devide application logic from the presentation and busniess logic.
The anvantage of using MVC:
• Easier maintenance, testing, update the application
• Flexibility in planning and implementing object Model.
• Reuseability and morularoity
• Parallel developmnet of objects
• The application is extensible and scalable
Model – Business logic. It represents data structures. Provide functions for retrieve, insert and update
information in our database.
View – Presentation logic. It is the information that is being presented to a user. Normally, this is the web page,
but in Codeigniter a view can also be a page fragment (header or footer). Also it can be RSS page, or any other
type of “page”.
Controller – Application logic – contains logic of the page. It joins everything together and generates the page
for the user
Page 10
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
Mobile application is built using modified MVC architectural pattern. Main application components are: Model,
View, Controller, XML Parser module, Communication module and Security module. MVC pattern is modified
because Controller and View component are not strictly divided. Web-services module shown on the figure is
not part of mobile application but is shown to clarify model.
View component is used to represent data to the user in simple way. View component consists of XML layout
files, resource files (e.g. pictures) and Activity type classes. XML layout files define components used to
implement user interface. Some UI components need to be created at run-time. To make that possible those UI
components are created in Activity type classes.
Controller is component that receives input from View and instructs model and View to make actions based on
that input. Controller is implemented in Activity type classes.
Model is used to manage data and information and is separated from View or Controller.
Mobile application and Web application are using web-services to communicate. To make that communication
secured some security protocols needs to be implemented. Security module implements all necessary security
protocols. All the communication with Web application goes through Communication module which uses
Security module methods if necessary.
XML Parser module is used to parse XML files received in communication with Web application.
Web application
Mobile application is Android based application and because of that is will be written using Java programming
language. Mobile application will be developed using Eclipse development tool and will be written for Android
1.5 operating system. It won’t have problems running on mobile phones with higher operating system.
show_error('message')
This function will display the error message supplied to it using the following error template:
“application/errors/error_general.php”
show_404('page')
This function will display the 404 error message supplied to it using the following error template:
“application/errors/error_404.php”
log_message('level', 'message')
There are three message types (error, debug, info):
1. Error Messages. These are actual errors, such as PHP errors or user errors.
2. Debug Messages. These are messages that assist in debugging. For example, if a class has been
initialized, you could log this as debugging info.
3. Informational Messages. These are the lowest priority messages, simply giving information regarding
some process.
Error occurred while processing the form will be caught by Form Validation Library
Error Action
page doesn’t exist Show 404 error page
username or password is incorrect Message incorrect username or password
the user name already exists in the database, Message: user already exists
when adding the user
forbidden characters appear in URL Alert URL is incorrect
Failed connection to database Alert user and administrator
PHP scripting error Alert user and administrator
Field not filled Message: Field is required.
Invalid email address Message: Field must contain a valid email address
Invalid url in form Message: Field must contain a valid URL
If alphabetical character is inserted, but not allowed Message: Field may only contain alpha-numeric
characters
Page 12
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
systems
application mass_observation
cache
config
config
codeigniter
controllers
database controllers
errors
fonts errors
helpers
helpers helpers
language
language
language
libraries
libraries
logs
models
logs models
views
views views
Using the CodeIgniter framework we have the ability to make few applications with the same framework core.
For example, if we want to make a new application, only what we have to do is create a new folder with the
application name inside the application folder (in our case we have created a new folder with name
“mass_observation”). Additional we have to copy all of folders from the application to our new application
folder (config, controllers, errors…). Same steps are for second application.
If we have only one application, it is not needed to make previous actions, simple we can use application folder
as the main folder of our application.
Directories description:
• system – the main folder. It separates Web application from the other files and folders on the server. This
folder contains an application folder for our application(s) and other folders and files which describe
application core. Commonly we will not use any other folder than application folder because it can be
“dangerous” change file from the application core.
• application – as said before, this is the folder of our application. Application folder consists of:
▪ config – the configuration folder consist all files necessary for configure our application (e.g.,
base url, index page, default language, database connectivity settings, routing, …)
▪ controllers – in the controllers folder we make our controllers as requires MVC (model – view
– controller) architecture. Controller is the hart of our application, as they determine how
HTTP request should be handled.
Page 13
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
▪ errors – folder for specifying errors for application. We can separate errors from the our
controller what is very important for maintenance.
▪ helpers – consists files (classes) which help us with tasks. Each helper file is simply a
collection of functions in a particular category. For example we have “URL Helpers” that
assist in creating links, “Form Helpers” that help us create form elements…
▪ language – as the name of folder says this folder help us to create multi language application.
▪ libraries – libraries folder consists modules for our application. CodeIgniter have much default
libraries (e.g. Calendar, Database, Email, File uploading…). The one library is described as
class which has configurations and methods for module.
▪ models – models folder consist PHP classes that are designed to work with information in our
database. For example, model class contains functions to insert, update and retrieve our page.
Models are required by the MVC architecture.
▪ views – views folder consist view files. View files are simply a web page, or a page fragment,
like a header, footer, sidebar, etc. Views are never called directly; they must be loaded by a
controller as required by the MVC architecture.
Admin modul
Accounts_model
MOB_Controller Admin
ACLLibrary «uses»
«uses» +create_account()
+init() +index() +get_accounts()
+add_role()
+add_user() +get_by_username()
+add_resource()
+edit_user() +get_type()
+allow()
+delete_user() +update_account()
+is_allowed()
+list() +update_password()
+delete_account()
Page 15
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
Image shows class diagram which contains representative classes of the model and controller layers of the
application, and shows how those classes are connected and dependant on each other. Each of the modules will
be implemented within its controller. Each controller inherits the basic controller.
• MOB_Controller - Used to check access and initiate specific resources common to all controllers.
• Webservice controller – Needs to implement web service actions for login, get interface of observation
event, make and list observations events available for specific user.
• Authentication controller - Needs to implement actions for login, logout and registration new users.
• Admin controller - Needs to implement actions for add user, edit user, delete user and list available
users.
• Initiator controller – Needs to implement actions for create, edit, start, stop and list observation events.
• Observer controller - Needs to implement actions for make and list available observations.
• Accounts_model - Needs to implement methods for manipulating accounts data in the database.
• ObservationEvents_model - Needs to implement methods for manipulating observations events data in
the database.
• InterfaceComponents_model - Needs to implement methods for manipulating interface of observation
event.
• Observations_model - Needs to implement methods for save and read observations data in the
database.
• SecurityLibrary - There is to maintain the security of data transfer which is non-functional requirement
• UserAuthLibrary - Needs to implement authentication functionality and maintaining the session.
• ACLLibrary - Needs to implement Access control list functionality. You can add role and application
resources (Controller, method and parameters) and allow user access to certain resources. After that is
used to check if the user has access to certain resources.
Sequence diagram shown on figure 7 shows how mobile application communicates with web-server
using web services.
5. Approvals
Page 17
Mass Observation Version: 0.6
Design Description Date: 2010-10-08
Date
Name Title Signature
yyyy-mm-dd
Mr. Stephan Fickas Project Customer
Mr. Thomas Leveque Project Supervisor
Page 18