Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
372 views11 pages

Applying Agile Methodology in Mobile Software Engineering: Android Application Development and Its Challenges

This document discusses applying agile methodology to mobile software engineering, specifically for Android application development. It first provides background on mobile software engineering challenges and how agile practices like Scrum are well-suited for mobile development. It then describes developing a secure backup Android app in Python using their proposed agile-Scrum methodology. The experience developing this app in Python, an emerging language for Android, is discussed in detail.

Uploaded by

arban b
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
372 views11 pages

Applying Agile Methodology in Mobile Software Engineering: Android Application Development and Its Challenges

This document discusses applying agile methodology to mobile software engineering, specifically for Android application development. It first provides background on mobile software engineering challenges and how agile practices like Scrum are well-suited for mobile development. It then describes developing a secure backup Android app in Python using their proposed agile-Scrum methodology. The experience developing this app in Python, an emerging language for Android, is discussed in detail.

Uploaded by

arban b
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Ryerson University

Digital Commons @ Ryerson


Computer Science Technical Reports Computer Science

1-1-2013

Applying Agile Methodology in Mobile Software


Engineering: Android Application Development
and its Challenges
Shakira Banu Kaleel
[email protected]

Ssowjanya Harishankar
[email protected]

Follow this and additional works at: http://digitalcommons.ryerson.ca/compsci_techrpts


Part of the Computer Engineering Commons

Recommended Citation
Kaleel, Shakira Banu and Harishankar, Ssowjanya, "Applying Agile Methodology in Mobile Software Engineering: Android
Application Development and its Challenges" (2013). Computer Science Technical Reports. Paper 4.
http://digitalcommons.ryerson.ca/compsci_techrpts/4

This Technical Report is brought to you for free and open access by the Computer Science at Digital Commons @ Ryerson. It has been accepted for
inclusion in Computer Science Technical Reports by an authorized administrator of Digital Commons @ Ryerson. For more information, please
contact [email protected].
Applying Agile Methodology in Mobile Software
Engineering: Android Application Development and
its Challenges
Shakira Banu Kaleel Ssowjanya HariShankar
Ryerson University, Ryerson University,
Toronto, Canada Toronto, Canada,
[email protected] [email protected]

Abstract— Highly volatile requirements of mobile applications conducted in [1], it was observed that small or medium sized
require adaptive software development methods. Several mobile applications were developed by one or two developers
attempts to address challenges in mobile software engineering who were responsible for the point of conception until the
have found agile methodology to be appropriate for mobile official release of applications. The development process or
application development. This project report provides a detailed tracking of development activities are not given adequate
analysis on various challenges involved in mobile software importance by developers, but only some best practices have
development which are addressed using Agile-SCRUM been adhered. Also, since most of the applications developed
methodologies. An efficient mobile software development concept were for recreational purposes and were not business centric,
derived from Agile-Scrum methodology is designed in this
the software engineering process involved has not been formal.
project. A light-weight Android application for secure and
incremental backup has been developed using the proposed
The recent growth in the number of mobile applications
methodology. An in-depth illustration of the practical experience demands the mobile industry to deliver high product quality.
in developing the application has been discussed. Unlike other This can be achieved by incorporating standard software
prominent languages like Java, the use of Python for Android development methodologies in mobile software development.
platform has emerged recently. Hence developing the secure-
backup application in Python was a challenge, which has been B. Agile and Scrum practices for Mobile devices
dealt in this report. We believe our proposed methodology has a Agility means being able to move quickly and easily. Using
potential to help developers deliver improved quality of mobile agile methodologies in software development process makes
applications in short time. the process flexible enough to adapt quickly and easily to the
changing trends and technologies. In mobile software
Keywords: agile, scrum, mobile software engineering, mobile
application, android, python, sl4a
engineering, methodology is of great importance, since
software applications are ever changing and evolving based on
immediate user requirements. For teams focused on customer
I. INTRODUCTION satisfaction via development of a well-designed application by
means of a production process, agile methodology is adopted.
A. Mobile Software Engineering The SCRUM methodology is an iterative-incremental agile
Massive diffusion of mobile phones, especially smart development framework. Projects are developed through series
phones and mobile broadband services has lead to enormous of iterations called “sprints”. Each sprint is ideally a bunch of
and rapid development of mobile software applications. The low level SDLC processes where a small sub feature is driven
number of customers for 3G, 4G and 5G networks has been on from idea conception, planning till testing phase, which takes
the rise since 2008. It was foreseen that there will be four times around two to four weeks to complete. Short SCRUM meetings
increase in customers count leading to a dramatic increase in are held on a daily basis to discuss status updates of the team’s
cellular bandwidth by 2012 [12]. It was also predicted in [13] sprint tasks. Post sprint, retrospective meeting is conducted to
that the world revenue would grow from about 1 billion in document the shortcomings and improvements. It has been
2008 to approximately 8 billion in 2013, where the mobile found that agile-scrum process is best suited for project
social computing would stand third place, after music and development scenarios with highly emerging or rapidly
gaming. changing requirements as in the case of mobile software
development.
Today we have a number of programming environments
available for developers to create and release mobile C. Android Operating System
applications which include Xcode for Apple devices, Android
Development Tools (ADT) plugin for Eclipse environment After the launch of iphone Appstore in 2008, various other
offered by Android, Microsoft’s Visual Studio environment mobile engineering companies began their development and
offered for Windows phone and similar environment for launch of mobile applications. Google acquired Android Inc.
Blackberry, Symbian and such others. Out of a study back in 2005 with the intention to extend their successful
business to include the mobile market. A significant
distinction between Android and iPhone platforms is that screen size and resolution differs for different platforms like
Android is not tied to any particular hardware and can be used iPad & iPhone and various other Android platforms. Smart
on many mobile devices unlike iPhone. Other Android OS phones have accelerometer that reacts to device movement,
market partners are HTC, LG, Samsung, Motorola and NTT touch screen that responds to gestures, virtual keyboard,
Docomo. In this project we have chosen Android platform for multiple cameras, Global Positioning System and such other
development of a mobile software application. Android features. These features place requirements like sensor
architecture consists of four layers which are: a) Linux Kernel, handling, compatibility of native and hybrid application, user
b) Dalvik virtual machine and Android runtime environment, interface management and testing complexity. A number of
c) application framework and d) the applications layer. platforms available for operating system like Android may
require different set of features to function in the application.
D. Scope Every application that runs on a mobile device depletes the
One of the scopes of this project is to perform a detailed device’s battery life to some extent, which is a major concern.
analysis of agile and scrum practices that suit mobile (Android) As new software applications are just a tap away from the
software engineering in the best possible ways. We begin by end users, customer satisfaction has always been the prime
studying the a) available literature of agile software objective of mobile software engineering. The rapid growth of
development methodologies, b) list a number of challenges task-specific mobile devices with limited lifetime exerts
faced in mobile software engineering and c) focus on the best pressure on the development and maintenance of adaptive
practices recommended for addressing the challenges and mobile applications. The critical factor that limits commercial
developing mobile software applications. Research work in [1], success of mobile devices is the extremely narrow time
[3], [4], [6], [7] and [8] have proved that Agile and SCRUM available for release of new software applications. A slow-
methodologies are one of the best practices to be adhered for paced software engineering process could device a sturdy
mobile software development process. We then intend to application, but would result in releasing out-dated applications
construct a software development methodology best suited for to the market. Hence the mobile software development process
mobile application development. The other scope of this is time constrained. In this project, we aim to construct a
project is to apply some of the discussed practices in reliable light-weight Android application using test-driven and
developing a software application for Android platform, iterative-incremental development approach.
document our experience and challenges faced in the process.
We aim to construct a backup application for Android OS and B. Best practices recommended for Mobile Software
incorporate Rsync over Secure Shell (SSH) to make it secure. Engineering from literature
We have also included the concept of “reuse” and “sub-version
control” in our proposed methodology as well as in the android The functioning of mobile software engineering is directly
application. based on the budding demands from end users. The mobile
software industry is more focused on the product launch than
on the process adhered in product development. Mobile
II. LITERATURE REVIEW industries can sustain only if they reflect opinion of end users
and rapidly launch the software products on demand. Market
A. Challenges in mobile software development consciousness plays a vital role in mobile software
In this section, we highlight various challenges faced in engineering. It is vital to understand and predict the market and
mobile application engineering and mention those that we have also incorporate relevant practices from the start to end of the
attempted to address in our project. Unlike the process- mobile development lifecycle. Following are the two main
intensive traditional software applications like those that run on methodologies that have been identified as the best practices
desktops, servers or laptops, the software engineering process for mobile software engineering. We have incorporated some
involved in developing mobile applications pose additional highlighting features of these methods to construct our mobile
requirements and issues. Some common issues include: software development methodology and develop our Android
integration of software with hardware, limited storage and application.
traditional issues like reliability and performance [1]. Other
problems arise due to wireless feature that needs support for 1) Agile Methodology:
bandwidth variability and intermittent connections. Due to It is evident that large scale software development projects
mobility of mobile phones, there are issues with location- are moving away from process-intensive approach towards
dependent information retrieval and address migration. agile and Scrum approaches [1]. Agile methods are driven
towards establishing cost efficiency and customer satisfaction.
Development of mobile computing applications is The mobile software application has user interface modules
difficult especially because they need to be adaptive, as which react immediately to user interactions, and since this is
applications need to be aware of and adapt to changing an environment with rapidly changing user demands, the
resources like battery and bandwidth. Security in mobile development of such applications requires an agile approach.
platforms is a major issue since it is an open platform and Among the available software development methods, agile
malware applications could be easily installed without proper methods are the most appropriate and potential solution for
detection services. Interaction between applications is an area mobile application development according to [4], [5] and [6].
with potential problems and web applications that connect to To prove this, the author in [6] has performed a comparative
internet pose different set of challenges. According to [2], analysis of ideal agile characteristics with traits observed in
User Interface design needs significant consideration as the mobile software development and showed how mobile
engineering requires agile characteristics to be incorporated. In incorporated in the development process through reviews and
a review of literature conducted in [11], the key principles of learning sessions to ensure product analysis.
agile manifesto has been summarized according to [10] as
h) Adaptive process: The process is adaptive since
“individual and interactions over process, working software
over extensive documentation, customer collaboration over learning from the previous iterations or releases are efficiently
contract negotiation and responding to change over following a incorporated into the process for betterment. Continuous
monotonous plan”. These show the basic difference in attention to technical fineness and good quality design boosts
importance given to certain activities by agile methodologies agility.
when compared to traditional software development To achieve minimum time to launch the application, it is
methodologies. There are multiple agile processes with many necessary to have regular and early releases of operational
distinctive features such as: Adaptive Software Development software. This concept of regular release builds of the software
(ADP), SCRUM, Extreme Programming (XP), Crystal and is an important feature of Agile methodology. In this project,
Feature-driven development (FDD) [17]. Best suited features we have applied Agile methodology in software development
from all these processes are being adopted by various teams to phases to build a light-weight secure backup Android
tune to their flavour of agility. application. Here, we have covered the following features of
Agile software development is considered to be a powerful agile methodology: test-driven development, quality assurance,
and proficient approach to accommodate rapidly changing prioritization of requirements, periodical reviews, effective
demands of the market and to cope up with modern software communication, skilled developers and adaptive processing.
development trends. According to [7], “Agile software 2) Scrum Methodology:
development methodologies claim to speed up the delivery of
software solutions to a client’s rapidly changing requirements”. Scrum is a well-known agile methodology which is
Agile methods are believed to enhance certain features of characterized by iterative-incremental sprints. Sprints are short
mobile application development process such as flexibility, and time bound in nature. According to [9], Scrum is an
productivity, sustainability, learning, responsiveness, leanness, approach of project delivery which includes self-organizing
lightness, simplicity, technical quality and active user process into iterations which consists of planning, black-box
collaboration in software development [4], [7]. This engineering process and review or post-mortem phase. Scrum
methodology uses iterative-incremental model for development is an empirical management technique to control and manage
process to achieve quick delivery of software and to improve software development process. It mainly focuses on customer
risk-management capabilities. Some of the highlighting agile satisfaction, product reliability and product quality by means of
characteristics that well align with requirements of mobile self-organizing iterations. The dynamics of the team and
application development include: process are revealed and built during project execution.
a) Test-driven development: Testing goes hand-in-hand When compared to the traditional white box or waterfall
with development process. model, Scrum integrates the following phases into a sprint: use-
case development, design, implementation, integration and
b) Continuous customer involvement: Mobile industry testing. So the Scrum-agile process, in other words, the Black
focuses on demands from the market or end-users. Customer Box process consists of the following phases in general:
involvement during all phases of SDLC is considered highly product requirement, project planning, Sprint and reviews &
important to avoid unpleasant or unprecedented variations in release [9]. Planning is essential in sprints so as to reduce the
requirements. This helps to adapt accordingly. risk of roadblocks during development phase. Post-mortem is
c) Prioritization of requirements: According to another critical part that helps strengthen the knowledge-base
iteration, level of abstraction and current scope, the of best practices. SCRUM differs from waterfall and spiral
requirements may vary and has to be prioritized. Once they are models by providing: a) responsiveness to environment
prioritized, the design and implementation processes are throughout the process, b) unlimited team flexibility and
focused on satisfying the highly significant requirements first creativity during iterations, c) knowledge transfer in the form
and then towards attending to less significant requirements. of team work during project and d) a very high probability of
d) Effective Communication: The primary means of success [18].
communication is face-to-face people interaction. Agile Three phases involved in Scrum are: a) Pregame: This
process believes in building projects around stimulated includes planning and architecture design of the software based
individuals in the team. on items in the product backlog, b) Game: System is developed
e) Enhanced quality assurance: The iterative- in sprints, where functionality is enhanced to produce updates
incremental model and process-wide review-learning sessions and c) Postgame: marks the closure of the development
ensure enhanced quality assurance. process, including final documentation, pre-release stage
testing and release [18].
f) Skilled developers: Developers are agile,
knowledgeable, collocated and collaborative. In a mobile application development project using SCRUM
practices, distributed teams work autonomously and
g) Process-wide reviews and learning sessions: communicate through the daily SCRUM meetings. Daily
Knowledge obtained from product development is in turn Scrum is 15 minutes long, conducted to a) report and update
new impediments, scrutinize resources and skills required to acceptance phase and Phase 5: Release to Market. When a
tackle those impediments, b) monitor and share statistics of customer demands for a mobile software product, the concept
automated tests, builds and defects, c) present knowledge is fed into Phase 1. In this phase, we have incorporated market
session of new features to team and d) conduct post-mortem & analysis and physical constraint analysis (or overview of
reviews to impart lessons-learnt in the process to team and physical architecture) of mobile terminals.
update knowledge-base. In accordance to the development pace
of the application, SCRUM meetings may be conducted on a
daily basis or after each shift and an elaborate meeting could be
held on a weekly basis between various teams to ensure
effective management of planned activities. It was found in [8]
that a number of teams that worked on mobile application
development using SCRUM framework were successfully able
to deliver working software on time. Considering issues they
faced with time constraints and with just-in time learning of
mobile application development process, the teams managed to
accomplish project deliverables on time using SCRUM
framework.
In our project, we have followed SCRUM practices by
conducting status update meetings where we discussed about
tasks related to implementation and testing phases. Reviews
and changes to the plan, architecture, tools & technologies,
source code and quality assurance scenarios were made during
these meetings. As the number of team members involved in Figure 1. Proposed Agile-SCRUM Methodology for mobile Application
this project is two, the meetings were held through one of the development
modes: face-to-face meet up, Skype or phone calls. Generally
the team size of a project following SCRUM model is around These play important roles in mitigating uncertainties and
seven [22]. We have adopted certain SCRUM practices to help technical risks respectively if they are included in the early
us develop the secure-backup Android application for a smaller stages of development, which is explained in the upcoming
team size of 2 members. In our case, the team members share section. Phases 2 and 3 form a Sprint in our project that lasts
roles of Scrum Master, developer, software tester, Quality for 1 to 4 weeks. The Re-use concept in software development
Analyst and such others. Apart from the SCRUM and Agile is covered in Phase 2 of our methodology and is implemented
practices, we have used Bit Bucket for hosting our project code in our Android application by means of Rsync over SSH. Daily
and related documents as part of version control system. SCRUM meetings are part of Sprint for the team to share
Version controlling helps in ensuring the integrity of the updates on tasks accomplished, plan for the next course of
artifacts being developed in the development lifecycle. Web action, foresee and address various issues. Phase 4 marks the
closure of each sprint after which, effective feedback and
hosting helps us in sharing documents internally within team,
retrospective meetings are held to document the best practices
keeping track of team member’s activities and following up on and shortcomings faced in the current sprint iteration.
deliverables. It also assists us in providing feedback on the
tasks accomplished and helps in maintaining up-to-date project Phase 5 is an important validation step which confirms the
related data. product’s acceptance. On satisfying the customer’s
requirements, the product is set for official market release. If
III. DESIGNING SOFTWARE ENGINEERING METHODOLOGY not, second iteration begins from Phase 1 paving way for
FOR MOBILE APPLICATION DEVELOPMENT another sprint cycle. Most of the phases in this methodology
uses sub-version repository to control and maintain versioning
Our extensive study involving various research papers on of all project related documents as shown in Fig. 1. Our
agile-scrum methodologies and challenges involved in mobile methodology provides a clear vision of Agility by its adaptive
software development process helped us derive a development nature of re-framing requirements in subsequent iterations.
methodology. Traditional software development methodologies This includes consideration to i) market demands (guarantees
should be redesigned to accommodate adaptive nature of commercial success) and ii) changes to physical architecture of
mobile applications. In our approach, certain vital practices that the mobile device (conducting knowledge sessions on new
we found essential for mobile software development lifecycle versions of the device) in every iteration to negate risks and
have been included into the traditional Agile and SCRUM ambiguities.
methodologies. Fig. 1 shows the proposed Agile-Scrum
methodology for mobile application development with some
additional features.
This methodology consists of the different phases namely:
Phase 1: Requirements Analysis, Phase 2: Design and
Development, Phase 3: Test and QA, Phase 4: Product
IV. SECURE BACKUP APPLICATION ARCHITECTURE a) Activity: It is a response to an event (generated by
users or system)which is focused on user interaction. Each
A. Components involved in developing Secure Backup activity can represent a class in the source code.
Android Application
b) Broadband receivers: Help applications to listen and
A detailed overview of components required to design the react appropriately to broadcast announcements in the system.
secure backup Android application using agile-scrum software c) Content Providers: Provides data for an application
development methods is provided here: and controls data accessibility across applications.
1) Google Android Operating System: d) Services: Certain services run in the background like
Open Handset Alliance (OHA) along with Google as the an email client that constantly checks for new mails.
most active partner has given rise to development of Android 3) Python for SL4A:
OS. In 2010, Android market charged 25 USD to become a
Scripting Layer for Android (SL4A) is Android Scripting
registered developer and a developer was charged 400 USD to
Environment that enables users to edit and execute scripts
purchase an Android developer’s phone [12]. Android is based
on Linux-kernel where the user space and Dalvik Virtual against multiple script interpreters on the Android device.
machine is written in C. Other royalty charges include These scripts have access to many Android APIs and SL4A
download of non-free applications from the Android Market. enables users to install script interpreters into the application
An advantage of using Android OS is that the software is not directly from SL4A homepage. It is available as an open
tied to any particular mobile device like the iPhone OS. Other source project, hosted on Google Code. This environment was
than Google, some notable OHA partners who produce mobile designed to assist developers in creating new applications for
handsets that are compatible with Android OS are HTC, LG, Android operating system by providing support for many
Samsung, Sony Ericsson, Motorola and NTT Docomo. We scripting languages such as Python, Linux shell, Ruby, Perl,
have chosen Google Nexus as the mobile model on which the PHP, Rhino, Lua, JavaScript or BeanShell. This system is
planned secure-backup application is developed. Even though applicable for accomplishing three kinds of tasks namely:
the Android OS is open source, certain applications that access Rapid Application Development (RAD), writing test scripts
Google’s web services are not open source to other mobile and building utilities. In this project, we use SL4A’s
platforms. The Android OS is mainly focused on supporting architecture to build a secure back-up utility for Android OS.
multi-tasking, multi-touch and double tap zooming options. Among other scripting languages, we have chosen
The modern graphical look of user interface is attractive and Python for SL4A. To begin with, mobile computing was not
highly user-friendly. The OS is designed with an aim to always easily compatible with Python scripting language, as most of
remain on and most of the processing would be done online the mobile platforms do not provide direct access to Python.
making it cooperative and best suited for developing cloud and Java/XML is mostly used for Android platforms. But, after the
social computing applications. Other hardware manufacturers introduction of Python for SL4A by Google in 2011, this has
that deal with PC production have adapted to include Android changed and using Python for Android seemed quite
enabled terminals (smart phones, tablets) like Dell and Acer in challenging for us to undertake. Python is an easy to learn,
their agenda [16]. interactive, object-oriented and multi-paradigm language. It is
2) Android Architecture Overview: an open-source interpreted high-level programming language.
Python does not come along with SL4A, unless downloaded
The Android architecture consists of four distinct layers
and installed as an additional feature. In our project, this
namely (from top to bottom): a) Application layer- includes
interpreter is used to develop our secure Backup application in
software applications that run on the mobile phones (These Python scripting language for Android OS.
applications are developed in Java using Android software
development kit SDK), b) Application Framework Layer- 4) RSYNC over Secure Shell:
provides services to applications like Activity Manager RSYNC utility is used to ensure availability of identical
(controls activities for every application) and Content Provider data at two different locations. It is used for taking backup or
(provides the application with the required content and controls mirroring of files from one system to another. If the destination
data accessibility across other applications), c) Library / Virtual already has a different version of the file structure than the
Machine Layer and d) Linux Kernel Layer. The third layer source, then backup of the difference in file structure only
consists of Android run-time environment, libraries and also occurs. Secure Shell is a network protocol that enables
the Dalvik Virtual Machine which resides in Google’s Android cryptographic encryption of data communication between two
operating system. Dalvik VM provides instrumentation tools to systems that are connected via secure tunnel over an insecure
network. RSA private key is used for encrypting the file
help run the applications. Applications written in Java are
transfer using SSH. Client connects to the remote backup
converted to Dalvik Executable format before they are installed server via internet and SSH tunnel. The Rsync process uses
on mobiles, as this format was designed to support systems that SSH to encrypt and transfer files from client to server. The
have limited memory and processing speed. server is loaded with corresponding RSA public key certificate
Android applications are composed of four main to establish the connection with client and take back up of the
components according to [14], namely: specified directories
RSYNC over SSH has been used as an additional non-
Python component in our architecture. The concept of re-use in
software engineering is thus highlighted in our project. The V. IMPLEMENTATION
Rsync protocol avoids data redundancy and removes files from For developing the proposed secure-backup Android
server during the next scheduled backup, if those files were application, we have installed Android Software Development
already removed from the client. Kit (SDK) in Windows Vista platform. After unpacking
5) Sub-version control system: Android SDK; Android Virtual Device (AVD) is used to create
In order to maintain and manage different versions of mobile emulator for Google Nexus S model. Python for
project related documents like the source code, Config file, Android and SL4A need to be installed, as shown in Fig. 3 and
architecture diagram or framework and other readme files, we Fig. 4; and the source code Backup.py script is created for
have used a sub-version control tool called Bitbucket, with Git performing the secure-incremental backup. RSA Keys are
generated on the client with private key saved on client and
as client-end. We have been developing and updating
public key saved on the server. This is to support Rsync to
documents throughout the software development lifecycle of
work over SSH. Variable details in the client-server setup such
the secure-back-up application for Android. Bitbucket-Git as the RSA key certificate location on the client, server details
helps in maintaining sub versions of all these documents and like IP address and domain name are configured in a Config
tracking each version and the changes that it went through with file as seen in Fig. 9. The backup script is compiled and
appropriate logs Fig. 9 is a snapshot of Git Client-end and Fig. packaged along with required certificates, assets and resources
10 shows the sub-version repository that we have maintained into a single Android Application Package file (APK). With
on Bitbucket. this APK format of our application, we can install the software
on Android OS and run secure backup operation on the mobile
B. Architecture of Secure Backup Android Application device, as shown in Fig. 5, 6 and 7 (where, SecureBackup is
The architecture of our Android application is shown in the APK format of our application). A sample log on remote
Fig. 2. Android emulator is the client in our setup which is server is shown in Fig. 8.
created using Android Virtual Devices (AVD). Google Nexus
S is the chosen mobile model for developing the application. The application is tested in Android emulator for Nexus S.
Script Layer for Android (SL4A) is installed on top of SDK. The emulator is launched by using Android 4.1.2-API Level16
The second layer of our system architecture consists of the as target and CPU/ image as ARM (armeabi-v7a). Memory
interpreter Python for SL4A which is embedded into SDK. In configuration: 343MB for RAM and 32MB for heap. Python
the same layer we have the Rsync over SSH tool for backup. version 3.2 has been used. We were able to launch Android
This backup process will involve initial authentication between Virtual Devices only for ARM.
the client and server which is followed by connection
establishment and secure file transfer process. The third layer
consists of the Python script that performs secure backup. This
layer consists of two important supporting files namely: a)
CONFIG file, which contains server details, the directories to
be considered for backup, location of the RSA files and such
others and b) RSA Private Key: The certificate key for
authenticating the client. Using the RSA key exchange SSH is
activated and a connection is established between client and
remote server, following which the secure back up process
takes place.

Figure 3. SecureBackup APK in Android SDK

Figure 2. Architecture of Secure Backup Android Application


Figure 7. Post Execution Snapshot

Figure 4. SL4A for Python

To maintain sub-versioning of the source code and related Figure 8. Remote Server Logs
documentation, Bitbucket has been used. To access Bitbucket,
we have used Git as the client end.
Fig. 10 and Fig. 11 show sub-version commits of source
code and various other files like Readme, Config file and
Architecture diagram of secure-backup Android application
maintained in Bitbucket.

Figure 5. SecureBackup Script Execution

Figure 9. Config File Snapshot

Figure 6. Completion of Execution Snapshot


Throughout the project, we have updated requirements,
techniques-tools and maintained detailed
documentation using sub-version control system. Since
this was a small-scale project with highly volatile
requirements and plan, it was quite impossible without
the daily SCRUM meetings to achieve sync among
team and work together to achieve these results.
 We began the initial iterations with the aim to produce
a software application that would act as a back-up
utility and progressed towards designing iterative
sprints using SCRUM. Next, as an enhancement we
introduced the concept of security in the application
under development. After a brief research, we chose to
use Rsync over SSH to cryptographically encrypt data
transfer between client-server. Advantages of
integrating Rsync over SSH in our backup application
are: i) the concept of software engineering “Re-use” is
practiced by using the pre-existing (non-Python) Rsync
application; ii) Using different processes or modules
Figure 10. Bitbucket Project Repository
like Rsync reduces overall CPU utilization of the
application.
 The performance analysis of our application was done
using Android Debug Bridge (ADB). Fig. 12 clearly
shows that the application consumes only 12% of CPU
utilization.
 Most of the Android applications are developed using
JavaScript, PHP, Perl and such other scripting
languages. Python generally has numerous libraries
and provides options to integrate systems to achieve
higher productivity and maintain lower maintenance
Figure 11. Bitbucket Commit History costs.
 We came across some difficulties in using Python to
VI. OBSERVATION AND FINDINGS develop the Android application. Python, supported by
Android Development Environment has recently
This section discusses our observations in applying Agile-
evolved in 2011, which is why we chose to use Python
SCRUM methods in this project and the practical experience
and impart our experience. Unfortunately, the vast
faced in developing the light-weight secure-backup Android
number of Python library functions is not integrated in
application:
Android OS, so we had to explicitly build the required
 Today’s smart phones support many different modules using instructions from [20].
programming options. We focused our work on the
 Regardless of the availability of feature-rich mobile
Android platform since it is one of the most prominent
phone hardware and powerful software platforms in
platforms by far [21], with the largest number of
abundance, developing reliable and strong applications
available devices.
continue to be a time consuming process which
 Use of Agile-SCRUM development methodology not demands in-depth knowledge from amateur
only provides adaptability and flexibility to changing developers. Main restricting factor of using Python for
requirements, but also offers a strict and scheduled android application development is that it is still in its
work model for the team to adhere to. early development phase and we do not have many
applications developed or much help available in this
 In our experience, some benefits observed in using context.
Agile-SCRUM methodology in Android application
development are a) project risk minimization, b) better  We believe that implementing the concept of Software
predictability, flexibility and adaptability, c) assurance engineering re-use of existing components that are not
of producing high quality software, d) enhanced natively developed in Python can help overcome issues
project visibility and e) on-time software release. that arise from using Python for Android. In this
project, we have re-used Rsync utility and integrated it
 With relatively changing requirements and without a in our secure backup application, which addressed the
complete plan of execution, we were able to adapt and challenge of developing backup funcionality in Python.
accommodate changes introduced during iterations.
 Most good quality and reliable Android backup in using the emulator, we were not successful in testing the
applications are not available in market for free and battery performance of our application.
needs to be purchased by users. As far as we know,
secure backup application for Android devices using
Rsync over SSH and Python scripting language has not
been documented online. This could be because of the
recent surfacing of Python for Android and also due to
availability of many other GUI backup applications.
 This backup utility is meant to be developed by
advanced Linux users. On the other hand, users with
knowledge on RSA key generation alone can install Figure 12. Performance of Backup Application
our application to take a secure backup of Android
devices with limited changes to the Config file. VIII. CONCLUSION
 During implementation phase, we were able to launch By using Agile and SCRUM practices in our initiative to
the emulator for Google Nexus S device by develop a light-weight Android application, we have been able
configuring the Android Virtual device with ARM to i) construct the software, ii) accommodate changes in
(armeabi-v7a) as system image and Target as Android requirements and plans and iii) upgrade our technical skills to
4.1.2-API Level 16. Other options of CPU or system adapt to technology and tools used in the course of project. We
image do not launch the emulator, due to which we have studied Agile-SCRUM practices that best suit
were unable to check the feasibility of our application requirements of android software development and applied
on any other Android architecture. them in designing a mobile software development
methodology. Based on this methodology, we were able to
Apart from our practical experience in working for this
successfully develop a secure backup application on Android
project, we have learnt that importance to i) physical
platform. The application was developed using important
architecture of the mobile platform or device and ii)
features from Agile-SCRUM methodology such as adaptability
incorporation of commercialization right from the first
to evolving requirements, technically strong development
iteration proves to be highly advantageous. Constraints in
teams, test-driven development approach, effective
physical architecture of mobile devices need to be
communication through daily SCRUM meetings, enhanced
considered and elaborated from the early stages of SDLC
quality assurance measurements, sub-versioning framework
process. These limitations constitute to a high degree of
and process-wide reviews and feedback sessions. Use of
technical risk in the software design. Prototyping could
incremental backup is believed to reduce the network’s
help mitigate such threats. Mobile software development is
bandwidth utilization due to minimal data transfer.
majorly dependent on the market. Market consciousness
Performance analysis has resulted in low CPU utilization,
needs to be incorporated into SDLC activities in order to
which validates light-weight feature of our Android
help mitigate uncertainties and risks that arise from market.
application. Apart from this, complete awareness of physical
It is also imperative to analyze the market and customer’s
architecture (limitations) of the mobile terminals and market
needs and meet a strict time-to-market schedule.
consciousness are considered essential in avoiding
unprecedented risks. Mobile industries need to adapt software
VII. RESULTS development methodologies that maintain a balance between
It is observed that using Agile-SCRUM practices and market-oriented and technical activities in order to sustain in
incorporating ideas from market are highly essential in today’s market.
successfully developing a software application for Android or
any mobile platforms. Our basic idea was to develop a light- REFERENCES
weight Android application. Due to process-switched control [1] S.Agarwal and A.I.Wasserman, “Mobile application Development: A
mode of the application, we have achieved minimum CPU Developer Survey”, submitted for publication, 2010
utilization at a given point in time. [2] J.Dehlinger and J.Dixon, “Mobile application software engineering:
Challenges and research directions”, in Workshop on Mobile Software
We have obtained CPU performance statistics by using Engineering, Oct 2011
ADB. Maximum CPU utilization of the secure backup [3] Yang-Jae Jeong, Ji-Hyeon Lee, and Gyu-Sang Shin, "Development
application is observed to be as low as 12% which is shown in Process of Mobile Application SW Based on Agile Methodology", 10th
Fig. 12. This proves that we have indeed developed a light- International Conference on Advanced Communication Technology,
weight Android application. Another important feature to 2008. ICACT 2008. vol.1, no., pp.362,366, 17-20 Feb. 2008
highlight is that this application performs incremental backup [4] V.Rahimian and R.Ramsin, "Designing an agile methodology for mobile
of data, i.e., it performs a backup of latest modifications since software development: A hybrid method engineering approach", Second
International Conference on Research Challenges in Information
the last backup. Due to incremental backup, the amount of data Science, 2008. RCIS 2008.vol., no., pp.337,342, 3-6 June 2008
transferred every time is minimized, which in turn reduces [5] B.Boehm, "Get ready for agile methods, with care", Computer , vol.35,
communication cost and bandwidth consumption of the no.1, pp.64,69, Jan 2002 doi: 10.1109/2.976920
network. Hence, we do believe that battery consumption of this
application would be minimal. Unfortunately due to limitations
[6] P.Abrahamsson, “Keynote: Mobile software development – the business [14] Cuixiong Hu and Iulian Neamtiu. 2011 “Automating GUI testing for
opportunity of today”, Proceedings of the International Conference on Android applications” Proceedings of the 6th International Workshop on
Software Development., 2005, pp.20-23 May 2005 Automation of Software Test. AST 2011). ACM, New York, NY, USA,
[7] M.Taromirad and R.Ramsin, “Cefam: Comprehensive evaluation 77-83.DOI=10.1145/1982595.1982612
framework for agile methodologies”, Software Engineering Workshop, http://doi.acm.org/10.1145/1982595.1982612
2008. SEW'08. 32nd Annual IEEE, pp.195-204, October 2008. [15] Cuixiong Hu and Iulian Neamtiu. 2011 “Automating GUI testing for
[8] C.Scharff and R.Verma, “Scrum to support mobile application Android applications” Proceedings of the 6th International Workshop on
development projects in a just-in-time learning context”, In Proceedings Automation of Software Test. AST 2011). ACM
of the 2010 ICSE Workshop on Cooperative and Human Aspects of [16] L.Jordan, and P. Greyling, “Introducing SL4A: The Scripting Layer for
Software Engineering (pp. 25-31). ACM May 2010 Android”, Practical Android Projects (pp. 193-220). Apress 2011
[9] P. Nicolas, “Introduction to SCRUM Agile Process for Global software [17] A.Chan, “Comparison of Python for Android and C-Python”, Review of
development”, Coalesce Network, pp. 1-9, 2007. Business and Technology Research, Vol. 5, No.1, 2011, ISSN. pp.162-
[10] R. D. Austin, “CMM versus Agile: Methodology wars in software 168
development”, Harvard Business School, pp. 1-17, 2007 [18] R.C.Martin and M.Martin, “Agile principles, patterns, and practices in
[11] R.Sriram and S.K.Mathew, “Global software development using agile C#,” Prentice Hall PTR, June 2007
methodologies: A review of literature”, Management of Innovation and [19] J.Sutherland and K.Schwaber, “The Scrum Papers: Nut, Bolts, and
Technology, ICMIT 2012. pp. 389-393, IEEE Conference, June 2012 Origins of an Agile Framework”, SCRUM Training Institute. 2010
[12] A. Hammershoj, A. Sapuppo & R. Tadayoni, “Challenges for mobile [20] M.Naranjo and R.J.Mathew, “Building Python Modules: Python for
application development”, Intelligence in Next Generation Networks Android”, Feb 2011, [online] Available:
(ICIN), 2010 14th International Conference on (pp. 1-8). IEEE https://code.google.com/p/python-for-android/wiki/BuildingModules
[13] Feijoo, Pascu, Misuraca and Lusoli, “The Next Paradigm Shift in the [21] Gartner Inc., “Gartner Report on Smartphone Sales”, [online] Available:
Mobile Ecosystem: Mobile social computing and the increasing http://www.gartner.com/it/page.jsp?id=1622614
Relevance of users”, Communications & Strategies, 2009, (75), 75. [22] B.N. Javagal, Ratnakala, S.N. Rajeshwari and M. Nanditha, “Software
Development using agile and scrum”, in ICACEE. Nov 2012

You might also like