Software assurance practices for mobile
applications
Luis Corral, Alberto Sillitti & Giancarlo
Succi
Computing
Archives for Scientific Computing
ISSN 0010-485X
Computing
DOI 10.1007/s00607-014-0395-8
1 23
Your article is protected by copyright and
all rights are held exclusively by SpringerVerlag Wien. This e-offprint is for personal
use only and shall not be self-archived
in electronic repositories. If you wish to
self-archive your article, please use the
accepted manuscript version for posting on
your own website. You may further deposit
the accepted manuscript version in any
repository, provided it is only made publicly
available 12 months after official publication
or later and provided acknowledgement is
given to the original source of publication
and a link is inserted to the published article
on Springer's website. The link must be
accompanied by the following text: "The final
publication is available at link.springer.com”.
1 23
Author's personal copy
Computing
DOI 10.1007/s00607-014-0395-8
Software assurance practices for mobile applications
A survey of the state of the art
Luis Corral · Alberto Sillitti · Giancarlo Succi
Received: 6 November 2013 / Accepted: 15 March 2014
© Springer-Verlag Wien 2014
Abstract Mobile software applications have to cope with a particular environment
that involves small size, limited resources, high autonomy requirements, competitive
business models and many other challenges. To provide development guidelines that
respond to these needs, several practices have been introduced; however, it is not clear
how these guidelines may contribute to solve the issues present in the mobile domain.
Furthermore, the rapid evolution of the mobile ecosystem challenges many of the
premises upon which the proposed practices were designed. In this paper, we present
a survey of the literature on software assurance practices for mobile applications,
with the objective of describing them and assessing their contribution and success.
We identified, organized and reviewed a body of research that spans in three levels:
software development processes, software product assurance practices, and software
implementation practices. By carrying out this literature survey, we reviewed the different approaches that researchers on Software Engineering have provided to address
the needs that raise in the mobile software development arena. Moreover, we review
the evolution of these practices, identifying how the constant changes and modernization of the mobile execution environment has impacted the methods proposed in the
literature. Finally, we introduced discussion on the application of these practices in
a real productive setting, opening an area for further research that may determine if
practitioners have followed the proposed assurance paradigms.
L. Corral (B) · A. Sillitti · G. Succi
Free University of Bozen/Bolzano, Piazza Domenicani 3, 39100 Bolzano, Italy
e-mail: luis.corral@unibz.it
A. Sillitti
e-mail: alberto.sillitti@unibz.it
G. Succi
e-mail: giancarlo.succi@unibz.it
123
Author's personal copy
L. Corral et al.
Keywords
Quality
Applications · Development · Mobile · Practice · Process · Product ·
Mathematics Subject Classification
cle/survey
68-02 Computer science, research arti-
1 Introduction
Smart mobile devices like cellular phones and tablets are a very important target for
software products and services, benefiting from the high impact of ubiquitous computing and the increasing capabilities of handheld terminals. The number of software
applications (commonly known as apps) targeted to mobile devices grows quickly,
along with the features and computing power offered by this kind of equipment.
However, mobile-specific software applications bear the big challenge of performing satisfactorily in a heterogeneous and resource-limited environment that demands
availability, performance, responsiveness and efficiency, while delivering value to the
end user. In addition, apps should be developed quickly and should keep a low price to
succeed in a highly competitive market that involves millions of users and hundreds of
thousands of products. All these factors build up an environment that is complex and
fault prone, posing a major challenge on software developers: how to create software
applications capable to succeed in the mobile domain [1].
Software Engineering focuses on the study of software artifacts, people as producers
of software, and processes as guarantors of quality. Roman et al. [2] related for the first
time Software Engineering and mobile platforms by providing a research agenda that
includes theoretical investigation, models, algorithms, applications, system research
and middleware, inviting the Software Engineering community to embrace mobile
computing as the new frontier to conquer. In consequence, Mobile Software Engineering should undertake scientific methodologies for understanding and applying
Software Engineering principles to the development of software for mobile devices,
including software development processes, system architectures, system performance,
software measurement, and software quality and improvement [2].
Scientific literature on Software Engineering has introduced different practices to
assure the development of mobile software projects. Diverse approaches have been
proposed: development frameworks, measurement techniques, design patterns, best
practices, etc. Nonetheless, the evolution of the mobile execution environment has
challenged several of the premises upon which some of the proposed practices were
first introduced. This situation urges researchers and practitioners to keep up with
the growth of this dynamic area by expanding, deepen and modernizing the body
of knowledge on Mobile Software Engineering. We were not able to find a review
that condenses the different sources of research works that have introduced assurance
practices for mobile software. Also, follow up literature on the topic is limited and
does not provide elements to evaluate the actual utilization and effectiveness of the
proposed approaches. In this paper, we present a review on the different studies that
present assurance practices to suit the needs of the mobile software environment. In
addition, we extended this review surveying experience reports, research works, and
123
Author's personal copy
Software assurance practices for mobile applications
other sources that may provide evidence of the use and effectiveness of these practices
in real-world mobile projects.
The rest of the paper is organized as follows: Sect. 2 describes the need of having
ad-hoc development practices for mobile software, Sect. 3 introduces our research
questions and the review strategy; Sect. 4 presents a summary of a selection of mobile
software assurance practices currently published; Sect. 5 reports the results of our
review and discusses relevant insights; Sect. 6 illustrates the open items identified by
our review and the opportunities of future work on this research track; finally Sect. 7
closes this work providing a summary and drawing conclusions.
2 Software engineering for mobile development
Mobile systems carry out their operations in a wide range of environments, from
traditional services like voice communication, text messaging and games, to business
applications, location based services, augmented reality, productivity tools and much
more. Although software has played a major role as operative platform for portable
communication devices, in the last years it has grown in importance, evolving to
become an important component of the mobile device and a key player in the interaction
between device and user. Today, mobile systems challenge desktop systems as the most
important platform to distribute and utilize software, and as consequence they become
a very attractive target to develop for.
The increasing capabilities of mobile devices and their adoption by a vast range
of markets attracts the interest of knowing in a more detailed fashion the conditions
under which mobile software is conceived, designed, implemented, maintained and
measured, both from process and product point of views. As mobile applications are
one of todays fastest growing digital sectors, developers struggle finding ways to profit
from for their work: competition is big, and the mobile software product is usually lowpriced; nonetheless, in spite of this, it is a field that has proved to generate important
revenues and it has become very attractive for software developers. Applications,
thus, have to be created and monetized incorporating the appropriate strategies and
methodologies that comprise technical and business aspects.
2.1 Environment considerations
Software applications for mobile devices are developed through practices whose objective is to create products that are able to perform satisfactorily in a limited environment that, still, places high requirements on availability, efficiency and responsiveness.
Mobile software developers must bear in mind such requirements, along with the regulations imposed by distribution channels, which must be met in order to promote a
product in any application store. This poses on developers the question of how to produce successful apps in a restrictive environment with a wide and competitive market.
Mobile software engineers should put in practice a development strategy that considers several quality drivers: the mobile environment itself, the expectations of the end
user, and the restrictions set by the mobile application market.
123
Author's personal copy
L. Corral et al.
The development of mobile applications has been be defined as a very challenging
task due to the specific demands and technical constraints of the environment, in which
we may point out as critical factors [3]:
–
–
–
–
the limited capabilities and rapid evolution of terminal devices,
the incorporation of various development standards,
the need of dealing with diverse protocols and network technologies,
the need of operating on a variety of platforms, addressing specific needs of mobile
terminal users, and the need of meeting strict time-to-market requirements.
Spataru [5] defined a summary and categorization of the limitations of mobile
computing devices previously outlined by Hayes [4]. Such categorization considers
two types of constraints: evolving and inherent [5]:
– evolving constraints they include current limitations that will be solved in the
future by the evolution in technology and resources, bandwidth, signal coverage,
etc. For instance, dealing with a slow data network.
– inherent constraints they are those intrinsic to mobile platforms and target devices
as they are by design; this family of limitations is permanent and will not be solved
in the near future, since it is part of the native characteristics of the mobile execution
environment. For example, interfacing with the phone via a limited keyboard or
tapping a small screen.
This simple taxonomy gains in importance when software designers define approaches
and practices that aim to relieve feasible constraints by means of non-functional
requirements.
Specialized literature points out other important issues for mobile software like the
variety of wireless communication problems (availability, bandwidth variability, heterogeneous networks), assorted mobility issues (migration, management of locationdependent information), the variety of standards, protocols and network technologies,
the limited capabilities of terminal devices (low power supplies, small sized user interfaces, low storage capacities), privacy, and others [6].
2.2 Business considerations
From a business perspective, the production and marketing of mobile software products
should satisfy a business model able to generate revenues in a highly competitive
market, given that mobile applications tend to be low priced.
Mobile applications typically take part of the App Store Model [7], which constitutes an approach in which a mobile software platform offers the necessary infrastructure for developers and users to respectively offer and obtain software products. Developers utilize the app store as a high-profile platform to showcase their products to millions of potential customers, paying an entrance fee and giving to the store a percentage
of the profit generated by each sale. On the other hand, users access an application
delivery platform (usually a website or software interface), search for the desired
application, pay for it (if required), download it, and install it in their smart device.
The App Store Model was popularized by Apple through the iOS App Store for
the iPod/iPhone product families. Since then, this model has been the trendsetter for
123
Author's personal copy
Software assurance practices for mobile applications
similar software delivery platforms that manage the distribution of mobile software
applications in the mainstream. As of 2013, all major mobile operating platforms
count on an app store: iPhone has the iOS App Store, Android OS has Google Play,
Windows Mobile has the Windows Phone Store, and so on.
App stores complement the sale of the smart device by giving the possibility of
enriching it with software applications. This takes the App Store Model into a business model of higher scope: selling a mobile device is not anymore a stand-alone
transaction; instead, it is part of the sale of a complete device-driven ecosystem that
consists of the hardware device, its operating system, an application store, and the apps
themselves [8]. By extension, the quality of the products offered by the app market
impact the quality of the ecosystem as a whole.
Mobile application markets host thousands of products, and downloads reach numbers in the order of millions a day. App stores grow as primary and influential channel for the dissemination of end-user mobile software products, hosting hundreds of
thousands of products that register millions of downloads. The quality of the mobile
software product is normally regulated by market policies and is judged by customers
reviews and ratings. Mobile app stores pose several requirements (i.e., publishing
policies) that a product must meet to be included in their catalog listings. Under this
rationale, the publishing guidelines prescribed by app stores represent the standard
quality level for a mobile app to enter into service. Publishing policies are highly
influential for software developers, since the lack of compliance may cause the rejection or exclusion of the product from the app store. Typically, publishing guidelines
comprise requirements related to the operation of target device, application content,
app functionality, user experience, and several others. In consequence, we can consider
publishing requirements as comprehensive and well-settled quality expectations. As
per publishing guidelines, developers shall cover a number of conditions not necessarily seen as software quality requirements: for instance, the app must have several
resources like illustrative pictures, textual descriptions, etc. When a developer wants
to promote a product in an app store, he is first required to submit the application to
a review phase in which the product is evaluated against the publishing guidelines;
if the application is compliant, then it is showcased in the storefront; otherwise it is
rejected and the feedback is sent to the submitter.
As a consequence, the interaction of mobile apps within the App Store model
poses on developers additional quality requirements that can be addressed through
solid software engineering practices.
Other notorious concerns include the growing need of targeting more than one
platform (e.g., iOS, Android, Windows Mobile, and others) to widen the range of
potential customers, since each one has a high number of users representing potential
customers of a new application [9]. Developers would not want to dismiss an extensive
spectrum of users by developing only for one platform, but at the same time conducting
the whole development process for a single application for each platform eventually
becomes redundant and expensive.
These factors illustrate only some of the challenges that software engineers should
consider to deliver a functional, error-free software product that is suitable to run on a
limited platform, and that effectively meets the mobile markets needs to generate the
expected revenues.
123
Author's personal copy
L. Corral et al.
Software engineers count on a rich variety of software processes, methodologies and
quality management systems intended to support the development of general-purpose
software products. In an attempt to cope with the challenges of the mobile development,
a more limited number of mobile-specific development models have been introduced.
Commonly, mobile-specific development models underline the necessity of adapting
software development practices to the evolving needs of mobile software [10], but
they pay little attention to software assurance tasks due to the traditionally low level
of criticality of mobile applications [11]. In consequence, currently it is not available
a software paradigm to assure the quality of the mobile software product, taking
into account the needs and particularities of the mobile environment and the mobile
application market.
As software for mobile devices earns a key role in the operation of mobile devices,
and the utilization of mobile apps systematically grows, the lack of strong software
engineering practices for mobile applications will become more noticeable. A solid
knowledge of software engineering aspects may enable stakeholders to make decisions
that impact positively the whole software development process and allow to deliver
better mobile applications [12].
3 Research on software assurance for mobile development
The mobile execution ecosystem introduces several limitations that are not present in
desktop computing [13]. These constraints imply additional considerations to address
through the different phases of the software development lifecycle [14]. Additionally,
the business model of the mobile software product is particular [15]; it foresees high
competition, short time to market, low prices and large distribution channels like app
stores. All those requirements need to have a link with the practices that help to produce
software able to succeed in such a complex environment [7].
3.1 Research question
We want to know the state of the art on the processes and techniques that concern
on guaranteeing the quality of the mobile software product based on software quality
assurance practices; for instance, software life cycles, development methodologies,
and others. We formulated as research question:
– RQ1: What quality assurance practices have been proposed to address the specific
needs of the mobile software product?
The answer to this research question provides us with a notion of the State of the
Art, supplying a collection of research papers that have proposed different approaches
to address the quality needs of the mobile software product, spanning through the
different stages of the software development life cycle. To this end, we executed a
survey on the major repositories of Computer Science literature to identify the research
works that propose assurance practices for mobile software.
To complement our answer, we are also interested on analyzing how the assurance
practices have evolved through the time, and what is impact of these processes in
other research works. To achieve this, we deepen our investigation on the suitability,
123
Author's personal copy
Software assurance practices for mobile applications
evidence and evolution of the identified literature, identifying as well relevant open
items in the subject matter.
3.2 Literature survey strategy
Although the present exercise was not conducted with the rigor of a Systematic Literature Review [16], we conducted a comprehensive effort to localize, extract, organize,
analyze and summarize the research works that cover software assurance practices for
mobile development. This required to define a strategy that considers the sources for
research papers, a time frame of interest, inclusion and exclusion criteria and quality
assessment.
The period chosen was from 2002 to 2012, in accordance with the ramp up, development and consolidation of smartphones as target platform for mobile software. We
put particular attention on the period from 2008 to 2013, which comprises the time
span of the release of iOS and Android OS, the most influential mobile operating
systems. The Literature Survey took place in October, 2013.
Three major Computer Science digital libraries were selected as source databases
for our study:
– ACM Digital Library
– IEEE Xplore
– Elsevier ScienceDirect
Relevant research articles should introduce methodological, practical and quantitative assurance practices applicable to a generic mobile software project; in this way,
the selection processes shall considered only papers that are relevant to our research
question. After the collection of the initial body of knowledge extracted from the digital libraries, we looked for complementary instances (research papers, surveys, web
sites, technical and experience reports) cited on the selected papers.
3.2.1 Search terms
The selected keywords aimed to isolate research works concerning the development
and quality management in a mobile software project The most important keyword is
assurance, however, we had to bear in mind the different approaches that Software
Engineering utilizes to assure a product. With this idea in mind, we identified several
alternative terms that are highly relevant for software assurance, such as quality, metrics or process. However, these terms are very wide as to narrow the search to our topic
of interest, attracting a very high number of non-relevant research works. To overcome
this problem, we constructed chains of keywords that directed us to highly relevant
research products. A summary of the utilized search keywords and the obtained results
can be found in Table 1.
3.2.2 Inclusion and exclusion criteria
To make the selection of the works that are relevant for our survey, we established as
inclusion criteria:
123
Author's personal copy
L. Corral et al.
Table 1 Search keywords and results
Keyword
IEEE Xplore
ACM DL
Science direct
Mobile Software Engineering
5
21
5
Mobile Software Engineering practices
4
163
96
Mobile software development process
8
297
408
Mobile software quality
3
6
0
Mobile software assurance
Mobile software metrics
1.
2.
3.
4.
5.
6.
7.
8.
0
0
1
51
399
172
The article is written in English.
The article is peer reviewed.
The article is a research paper (No forewords, keynote speeches, etc.)
The article is included in an international journal or conference proceedings.
The article presents practices specific and applied for mobile software.
The article focuses on Software Engineering practices.
The article focuses on assuring the conduction of a generic mobile software project.
The methodology of article should have been put in practice preferably in at least
one case study.
Moreover, we established as exclusion criteria:
1. The article refers to a single implementation of a particular tool.
2. The article does not address the quality needs of a stage of the software development
process.
3. The article does not meet the inclusion criteria.
3.2.3 Quality evaluation
Once the three libraries were surveyed, we applied the inclusion and exclusion criteria to filter the retrieved papers. A quality evaluation was performed to make sure
that only papers containing mobile-specific processes, techniques and quality practices were admitted to the review. An important aspect to mention is that we focus
the selection of works in Software Engineering aspects related to the execution of
a software project and the assurance of the intermediate or final products (inclusion
criteria 6 and 7; exclusion criterion 2). Under this rationale, a number of works that
concentrate on improving the quality of the mobile product from viewpoints such as
ergonomics, design user interfaces, graphic design, user experience, human computer
interaction, etc., giving preference to those research works tightly related to software
engineering. After conducting the Quality Evaluation the digital libraries, 23 highly
relevant research papers were selected (Table 2).
4 Review of software practices for mobile software
From this body of research, we could distinguish three layers of practices: process oriented, product oriented, and implementation oriented. Each family of works concerns
on different layers of the software development:
123
Author's personal copy
Software assurance practices for mobile applications
Table 2 Research works selected for the literature survey (sorted by date)
No.
References
Year
Title
1
[17]
2004
Mobile-D: an agile approach for mobile application development
2
[25]
2004
Quality attributes in mobile web application development
3
[22]
2005
4
[27]
2005
5
[33]
2005
6
[18]
2008
7
[19]
2008
8
[28]
2008
9
[34]
2008
10
[38]
2008
Proposition of an m-business procedure model for the
development of mobile user interfaces
Software, performance and resource utilisation metrics
for context-aware mobile applications
Agile Architecting: the use of architectural patterns in
mobile Java applications
Development process of mobile application SW based
on Agile methodology
Designing an Agile methodology for mobile software
development: a hybrid method engineering approach
Usability metric for mobile application: a goal question
metric (GQM) approach
Towards high-quality mobile applications by a
systematic integration of patterns
Lessons from early stages design of mobile applications
11
[26]
2009
Metrics evaluation for context-aware computing
12
[30]
2009
Testing requirements for mobile applications
13
[20]
2010
14
[31]
2010
Scrum to support mobile application development
projects in a just-in-time learning context
Adaptive random testing of mobile application
15
[21]
2011
16
[35]
2011
17
[36]
2011
SLeSS: a Scrum and Lean Six Sigma integration approach for the
development of software customization for mobile phones
An efficiency-centric design methodology for mobile
application architectures
The 4-tier design pattern for the development of an Android application
18
[23]
2012
Mobile development process spiral
19
[24]
2012
Building a mobile application development framework
20
[39]
2012
Quality factors in development best practices for mobile applications
21
[29]
2013
Mobile performance metrics for resource management
22
[32]
2013
Considering context events in event-based testing of mobile applications
23
[37]
2013
Android Passive MVC: a Novel Architecture Model for the Android
Application Development
– Process oriented practices they pursue to furnish step-by-step processes prescribing the necessary activities for the different stages of the development life cycle,
from the requirements elicitation through the final delivery. This family of works
is described in Sect. 4.1.
– Product oriented practices they focus on introducing techniques to analyze and
measure the mobile software product from an artifact-oriented perspective. This
family of works is described in Sect. 4.2.
– Implementation oriented practices they concentrate on proposing architectural
guidelines, design patterns and development best practices to implement on a
mobile software project. This family of works is described in Sect. 4.3.
123
Author's personal copy
L. Corral et al.
Table 3 Summary of research
works presenting mobile
software development practices
Family of practice
Process oriented
Product oriented
Sub-family of practice Number of works
Agile
5
Non-Agile
3
Standard-based
2
Metric-based
3
Test-based
3
Implementation oriented Design patterns
Best practices
5
2
In addition, we also included a “sub-family” of works, with the only scope of
grouping research papers that have a common trait in their approach to address the
needs of the selected matter. A summary of the selected works is shown in Table 3.
To answer RQ1, our strategy to understand the State of the Art focuses on providing
an individual analysis of each family of works.
4.1 Process oriented practices
The fast-paced mobile market sets the need of having lightweight processes that facilitate the change and the adoption of emerging trends. An effective development strategy
should be strong enough to consider the quality drivers of the mobile ecosystem and
to cope with the markets competitiveness, but at the same time it should be flexible to adapt to the advancements of the enabling technologies. Our review identified
9 process-oriented research works, which can be classified in Agile and Non-Agile
approaches.
4.1.1 Agile approaches
In 2003, it was discussed for the first time the suitability of Agile practices to fulfill the
objectives of the mobile software development [11]. Later, it was shown a thorough
mapping between the Agile home grounds with several development traits observed in
mobile software. This mapping permitted to outline why Agile might be a competent
solution for implementing development processes in this domain, based on characteristics like collaboration in small teams, reduction of development times, management
of ongoing changes of requirements, dealing with the variety of target platforms, and
the assumption a small-sized, non-critical end product [3]. According to our selection
criteria, we found in literature five methodologies that undertake the Agile approach
to design a comprehensive mobile-specific software development process:
– Mobile-D It was the first attempt to incorporate Agile for the development of
mobile applications. It was introduced in 2004 by Abrahamsson et al. [17] as a
development methodology inspired on Extreme Programming, Crystal Methodologies and the Rational Unified Process. It is recommended to be used by a small,
co-located team, working in a short development cycle. It is structured in five
phases (Explore, Initialize, Productionize, Stabilize and System Test/Fix), sequen-
123
Author's personal copy
Software assurance practices for mobile applications
–
–
–
–
tially arranged following a generic software development process. Despite of its
sequential organization, Mobile-D encourages iterations, after which a functional
product is released.
MASAM Mobile Application Software development based on Agile Methodology was proposed by Jeong et al. [18] and it is based on Extreme Programming,
Agile Unified Process, the Rational Unified Process and the Software and Systems Process Engineering Meta-model. MASAM follows a software life cycle
based on the Agile approach, proposing a simple life cycle conformed by 4 phases
(Preparation, Embodiment, Developing and Commercialization). The structure
and detailed implementation of MASAM show a strong tie with Mobile-D and
only introduces minor variations, making its original contribution rather marginal.
Hybrid Rahimian and Ramsin [19] promoted a conjunction of Agile and planbased methodologies. To structure their methodology, it is proposed to baseline
a generic software development lifecycle and to customize it with a merge of
Agile practices and principles of New Product Development. The outcome is a
Hybrid Methodology Design Process. It defines an Iterative Design Engine, that
is, a process that designs, models, integrates and reviews all software components,
and finishes with market testing to guarantee fitness for commercialization.
Scrum Scharff and Verma [20] covered the use of Scrum for the development of
mobile applications. Scrum is an iterative and incremental framework commonly
used in combination with other Agile practices. It uses iterations of fixed duration
(typically one to four weeks) called sprints. At the beginning of each sprint, the
development team commits to complete a certain number of tasks established
from the Product Backlog and documents them in a Sprint Backlog. After this,
the Scrum team decides how much work they will commit to complete in the next
sprint, until the Product Backlog is finished and the product is delivered.
Scrum Lean Six Sigma (SLeSS) An integration approach of Scrum and Lean Six
Sigma was proposed by Cunha et al. [21]. This philosophy enables the achievement of performance and quality goals, improving the processes in a statistically
controlled basis. SLeSS picks up from the Scrum methodology, pursuing a combination of the effort and consistent deliveries of the sprints with the continuous
process analysis and improvement model represented by the 5-phase DMAIC
methodology (Define, Measure, Analyze, Improve and Control). The implementation of SLeSS considers an incremental approach, in which the Agile philosophy (Scrum) is adapted to coexist with the planned-based methodology (Lean Six
Sigma).
4.1.2 Non-agile approaches
The Agile approach was first introduced under the premise that mobile applications are
generally simple, dedicated to accomplish a very restricted number of actions, usually
non-critical, and can be developed by small teams in short periods. Nevertheless,
the evolution of the mobile software product and its execution targets have left behind
some of these assumptions. More recently, some non-Agile development and assurance
approaches were introduced. According to our selection criteria, we found in literature
three non-Agile methodologies:
123
Author's personal copy
L. Corral et al.
– M-Business Procedure Model The m-business procedure model was introduced
by Glissman et al. [22] for the development of mobile user interfaces. The model is
based on well-established software engineering and human computer interaction
design principles. It is concretized with detailed development recommendations
regarding mobile-specific issues, concentrated in five sequential stages: Needs,
Requirements, Conceptual design, Physical design and Implementation.
– Mobile Development Process Spiral The Mobile Development Process Spiral was
proposed by Nossier et al. [23] to utilize a custom model to integrate mobilespecific usability matters into existing application development processes. This
process model baselines the Boehm Spiral Model and adapts it to the context of
mobile software. The process spiral works as a user-centered iterative process
model structured on several iterations where the requirements are addressed by
Independent design, Development, Testing and Planning phases. The authors propose this methodology for large, expensive, and complicated projects as an aid for
risk reduction.
– Intel Mobile Application Development Framework Even though it was not found
in the referred libraries, we considered interesting to include the Intel Mobile
Application Development Framework [24]. It is an enterprise-oriented effort that
focuses on evaluating the suitability of mobile applications to generate business
value within a company. It prescribes guidance documentation, enabling technologies and supporting resources for conducting projects that adhere better to the
standards and best practices of the organization.
4.2 Product oriented practices
A product-oriented family of works concentrates on proposing practices to analyze,
measure and test mobile applications. These practices consider upfront the characteristics of the mobile execution environment, and promote the customization of generalpurpose product quality practices to suit the needs of the mobile ecosystem.
– Standard-based software product assessment Spriestersbach and Springer [25]
summarized the typical challenges in the development of mobile web applications, and related such challenges into the quality characteristics described the
ISO/IEC 9126 standard. Mantoro [26] utilized as well the ISO/IEC 9126 standard
to evaluate several attributes on and context-aware applications (e.g., usability matters, network connection, target devices, etc.) that also hold for general-purpose
mobile applications. Both associations may lead to potential adjustments in the
ISO/IEC 9126 model, focusing on relevant quality attributes of mobile software
applications.
– Metric-oriented product assessment Ryan and Rossi [27] stated that few software
metrics consider the unique characteristics of mobile applications, unveiling an
important niche for future research on Mobile Software Engineering. In this work,
the authors propose a set of metrics to monitor statically source code attributes
related to the efficiency of mobile applications. Hussain and Ferneley [28] used
the GQM approach to produce a metric for the evaluation of usability on mobile
applications. Pandi and Charaf [29] introduced performance metrics as an input for
123
Author's personal copy
Software assurance practices for mobile applications
resource management. In this study, they presented an architecture for performance
measurement, accompanied by key performance metrics.
– Test-based product assessment Dantas et al. [30] published a review of testing
requirements specific to applications developed for mobile devices. Some of the
proposed requirements are: testing of mobile applications in both emulators and
mobile devices; ensuring that mobile applications must not harm anything already
deployed on the device; testing mobile applications according to the mobile context limitations. Liu et al. [31] proposed an adaptive random test case generation
technique to produce black-box test cases for mobile applications. Their results
show that such technique can both reduce the number of test cases and the time
required to complete the tests. Amalfitano et al. [32] discussed on the consideration of context events for testing mobile apps, since this kind of applications are
commonly event-driven systems that should take into account both context and
GUI events. Their approach is based on the definition of reusable event patterns
for the manual and automatic generation of test cases.
4.3 Implementation oriented practices
The last group of research works report design practices or implementation guidelines
for mobile software. They do not describe a comprehensive software development
framework, but they provide hands-on development guidelines, design methodologies
and best practices that can be applied following any development process.
– Design methodologies From the design standpoint, we found a high number of
research papers that focus on recommendations to design user interfaces that suit
better the mobile display, input and output means. We did not consider this family
of works as per our exclusion and quality assessment, given that they were in the
field of human-computer interaction rather than in software engineering. Instead,
we concentrated on works that provide architecture patterns [33,34] to facilitate
the implementation of mobile applications. Also, other group of works presents
design patterns [35–37] for mobile applications, based mostly on the MVC (modelview-controller) approach.
– Best Practices A group of research papers attempts to generate best practices for
the implementation of mobile software products. De Sa and Carrico [38] elaborated
a report of recommendations to address the challenges that emerged through the
data gathering, prototyping and evaluation of mobile applications. Marinho and
Resende [39] produced a relationship between several general-purpose quality
models (McCall, ISO, etc.), with the specific quality factors and the best practices
that are more appropriate to implement a mobile application.
5 Review results
We extended the analysis to the discussion of the accomplishment and evolution of
the identified body of knowledge. Our survey identified research works that provide
different practices that aim to assure the production of a fully functional mobile soft-
123
Author's personal copy
L. Corral et al.
ware application; however, there have been significant changes in the conditions of
the mobile ecosystem through the timeframe in which the mobile assurance practices
were released. For instance, at the beginning of the time span selected for our review,
concepts like location-based services, app stores, iOS, Android and other current key
terms were emerging concepts or did not exist at all. As a strategy to solve this research
question, we discussed the matter in three thematic areas covered in the rest of this
section: suitability, evidence and evolution [40].
5.1 Suitability
The reviewed methodologies claim effectiveness on addressing the needs and constraints of the mobile software ecosystem. We noted, though, that for the processoriented research works it is hard to argue for a direct effect on the end product at
the level of abstraction they are presented. Considering the constraints of the mobile
environment, it is not clear as to what problems can be injected if a general-purpose
software development process is used, or why a software development process would
help to resolve these issues. For instance, if we consider a scenario in which one has
to design an application to work in an environment with poor and intermittent connectivity, what development process (Mobile-D, Scrum, Spiral etc.) should be used?
Why this choice would be an important factor in the success of the final outcome?
Such questions are generally left open at this level.
With respect to product measurement, with the introduction evaluation metrics and
other quantitative indicators, the body of knowledge on software quality for mobile
applications provides the developer with instruments to assess, from a practical point
of view, the success and fitness of use of the end product from an artefact-driven
viewpoint that explicitly takes into account the conditions and limitations of the mobile
ecosystem. Finally, the implementation-oriented level gives preference to practices
that concern on solving, from a practitioner approach, the environment conditions
that affect the mobile product, including interface design, usability guidelines, design
patterns, and others. These practices concentrate effectively on the end product and can
be exercised regardless of the software development process that is being followed.
We can suggest that only the conjunction of available assurance practices at the three
levels collaborates to furnish a robust development lifecycle that is appropriate to meet
the business needs and environment constraints of the mobile ecosystem. Software
quality metrics stand in the middle to monitor the activities and supply the data that
support the measurement tasks required by the high level development process. At a
hands-on, implementation level, the architecture recommendations, design guidelines,
and best practices provide implementable practices that aid to create a suitable product
(Fig. 1).
In a different front, we should remark the high influence of the application markets
in the development practices and quality attributes of the mobile software product.
Mobile application stores (e.g., Google Play, iOS App Store, etc.) pose requirements
or publishing policies that a product must meet to be included in the catalog listings.
Under this rationale, the publishing guidelines prescribed by app stores represent the
standard quality level for a mobile app to enter into service. Publishing policies are
123
Author's personal copy
Software assurance practices for mobile applications
Fig. 1 Organization of software life cycles, product assurance practices and implementation practices
fundamental quality criteria for mobile developers, since the lack of compliance may
cause rejection or exclusion from the app store. In spite of this, we noted that publishing
guidelines from app stores are typically overlooked (i.e., not explicitly mentioned) by
the three layers of practices.
5.2 Evidence
One of the goals of this survey is to describe the impact of the proposed assurance practices in research literature. The research contributions that present assurance practices
usually include a scholar or industrial experiment to validate their approach. Still, to
claim the effectiveness and success of each practice it is necessary to supply empirical
evidence of their actual spread and implementations. We surveyed the selected scientific libraries and the World Wide Web looking for research papers, technical reports
or documentation that explicitly reports out the utilization of each of our selected
practices.
Table 4 shows a summary of the documented instances of implementation of each
methodology, including the case studies presented as part of the research paper in which
they are introduced. Citation count was taken from the digital library when available;
otherwise it was reviewed in Google Scholar. We count a case of utilization if the
referencing paper explicitly mentions that they utilize the methodology or technique
introduced by the referenced research work.
– Process Oriented Practices Besides Mobile-D, the rest of the process oriented
frameworks cannot argue to have a major adoption in a real production environment. Mobile-D keeps records about software projects developed using this
methodology, including works carried out both in research and large industry settings (ENERGI, F-Secure, Nokia, Philips) [41–43]. Scrum, SLeSS, m-Business
and Mobile Spiral present only one case study as part of the validation of their work,
but citing literature does not show further implementations. MASAM, Hybrid
Methodology and the Intel Framework do not show a case study, and are not
cited by any other report. This situation challenges seriously their feasibility and
potential success in a real setting.
123
Author's personal copy
L. Corral et al.
Table 4 Mobile-specific software assurance practices and their implementations
Family of practice
Process, Agile
Process, Non-Agile
Product, Standard
Product, Metrics
Product, Test
Implementation, Design
patterns
Implementation, Best
practices
Practice
Year
Cited by
Case studies
Abrahamsson et al. [17]
2004
71
16
Jeong et al. [18]
2008
11
0
Rahimian and Ramsin [19]
2008
22
0
Scharff and Verma [20]
2010
16
3
Cunha et al. [21]
2011
6
1
Glissman et al. [22]
2005
18
1
Nossier et al. [23]
2012
3
1
Intel [24]
2012
2
0
Spriestersbach [25]
2004
16
3
Mantoro [26]
2009
5
0
Ryan and Rossi [27]
2005
27
3
Hussain and Ferneley [28]
2008
12
1
Pandi and Charaf [29]
2013
0
1
Dantas et al. [30]
2009
11
1
Liu et al. [31]
2010
14
0
0
Amalfitano et al. [32]
2013
0
Ihme and Abrahamsson [33]
2005
18
5
Kamthan [34]
2008
0
0
La et al. [35]
2011
4
0
Kim and Park [36]
2011
2
1
Sokolova et at. [37]
2013
0
1
De Sa and Carrico [38]
2008
39
4
Marinho and Resende [39]
2012
1
0
– Product Oriented Practices The standard based approach introduced by [25,26]
enjoys of high popularity in a number of research works that base their quality strategy in ISO/IEC 9126 and more recently, in ISO/IEC 25010. However, the explicit
references to these research works are limited. The metric oriented approach introduced by [27] is also seminal in further efforts that have as well proposed new
metrics that at times specialize in a certain sub-area, like usability, performance,
etc. Finally, the test-based approach permitted to identify key attributes of the
mobile software product that is recommended to verify upfront. In summary, even
though the product-oriented family of works has a high number of citing works;
these papers make reference to the need of having product specific assurance practices for mobile applications, but do not tend to show a direct implementation of
the proposed ones.
– Implementation Oriented Practices The design pratices of [33], originated in the
same research group that created Mobile-D [17] are the most spread in scientific
literature. The rest of the analyzed papers have a very limited number of citations
that do not permit to evaluate their real implementation in other settings. The best
practices of [38] are also highly cited, but the number of works that make direct
reference of their utilization is low.
123
Author's personal copy
Software assurance practices for mobile applications
We expanded this analysis with a review of additional field studies, that is, development surveys, attempting to identify substantiation of the usage of a methodology,
pattern or other development practices in true mobile software projects [44–46]. Unfortunately, the reviewed studies focus their interest on analyzing the operating system
of choice, software development kits, type of applications produced, multiplatform
deployment and other topics. Although they suggest a clear trend on shortening the
development cycle and broaden the impact of the end product, further work is required
to unveil the utilization of a consistent development methodology or assurance practice
[47].
To have a realistic notion of the impact of the research works in a productive setting,
we need to go beyond the scientific work, and look for evidence taken from industry,
companies and practitioners. To this end, we foresee to conduct a comprehensive
survey, interviewing practitioners on mobile software development to identify and
characterize their development and assurance practices and relate them to the identified
body of research.
5.3 Evolution
When the first mobile-specific development practices were introduced, they considered
the Agile approach as the best fit for mobile development. Nevertheless, in those days
the mobile business and development and execution environment were different to
the current one. Table 5 shows the mapping between the Agile home grounds and the
characteristics of the mobile software, made available in 2005.
A decade of evolution on the mobile domain (software, hardware and business
models) has brought significant advancements; therefore the current applicability of
this mapping is controversial and invites to conduct an up-to-date discussion. To name
only some of the differences of the current status of the mobile domain, we identify:
Table 5 Mapping of Agile ground themes and mobile software development traits [3]
Ideal Agile characteristic
Mobile software development
High environment volatility
Dynamic environment: hundreds of new mobile phones
published each year
Majority of mobile software is developed in micro or
SME companies or development teams
Potentially unlimited number of end-users
Small development teams
Identifiable customer
Object-oriented development
Java and C++ are mainly used
Non-safety critical Software
Majority of existing mobile software is for
entertainment purposes. Mobile terminals are not
reliable
Mobile applications are stand-alone applications
Application level software
Small systems
Short development cycles
Size of mobile applications varies, but generally they
are less than 10,000 lines of code
Generally mobile applications and services can be
developed within 1–6 months time frame
123
Author's personal copy
L. Corral et al.
– While hundreds of new mobile models are still released each year, mobile developers also have well settled operating systems that have development kits (SDK)
and APIs that facilitate the interaction with new device models.
– Mobile software is still developed by small teams and small-medium enterprises,
but currently it is also part of major developments that involve large corporate
teams.
– Nowadays, mobile applications spans not only in stand-alone applications but
also interacting with other systems, collaboration tools, using heavily network
and hardware resources, etc. This also implies that the mobile software product is
not anymore small by definition.
– Applications deployed on cellular telephones currently include healthcare monitors or mobile banking apps that are required to meet strict standards to enter into
service and cannot be categorized as non-critical software.
We observe that some Agile-based mobile software development frameworks try
to enhance their methods by adapting practices from plan-based methodologies, for
example, project documentation, traceability records, and other considerations. For
instance, the latest Agile proposal, SLeSS, is an approach to relieve several shortcomings from Agile by applying statistically-based quality control. This represents
a complex merge of two different viewpoints: light-weight development practices
(Scrum) and heavy quality control methodologies (Six Sigma). Following this way,
other recent development methodologies like the Mobile Spiral or the Intel Model have
completely relegated the Agile approach. These examples reflect an identified decline
on considering Agile as a silver bullet [48] and instead promoting a savvy strategy to
decide when to use which practice evaluating its advantages and disadvantages.
The current status of the mobile-specific assurance practices provides software
engineers with a solid body of knowledge to combine the three layers of practices to
decide what approach to apply: Agile practices, plan-based methodologies, stringent
product-oriented quality inspections, software metrics, design patterns or implementation techniques.
6 Open items
Our literature survey provided a clear idea about the available quality assurance practices for mobile software, their scope and taxonomy.
An important open item is the to conduct a comprehensive investigation regarding
the State of the Practice. In our survey, we open the fields for this effort by extracting
the citing works and isolating the relevant implementations. The number of research
works and reports that make reference to the proposed methodologies is high for a limited number of practices only. For the rest, citation count and the overall referencing is
small, which suggests that the practitioner community has followed a different quality
assurance paradigm that has not been covered in detail by the software engineering
research community. Nonetheless, the analysis of the utilization of the reviewed assurance practices showed that their implementation in a real setting is still limited. The
academic citation count provides only a general view of finalized projects that exercised one or more of the published practices, but to have a more robust answer on the
123
Author's personal copy
Software assurance practices for mobile applications
matter there is a clear need of conducting evidence-based research that unveils what
mobile development practices are actually being used. These insights may be gained
by means of industrial surveys, interviews with mobile software managers and other
empirical studies, and from the proactive discussion with the scientific community.
Development guidelines from major application stores have been ignored by scientific literature. Mobile quality practices should consider upfront the requirements
from the user, the execution ecosystem, and the application market. In consequence,
ignoring the market quality drivers is a major shortcoming for the current body of
knowledge. To address this need, we recommend an analytical survey of the development policies of the major application stores to extract the most relevant quality
assurance requirements. Then, we may be able to recommend process and product
oriented quality assurance tasks to guarantee the fulfilment of the quality attributes
that are most relevant for real mobile app stores. With this research field open, further
efforts should concentrate in setting improved mechanisms to assure the quality of the
mobile software product from a market-aware point of view.
As discussed in Sect. 5, the mobile ecosystem (execution environment, target
devices, applications) have evolved considerably since the introduction of the first
research works that cover the Software Engineering needs of the mobile domain. An
updating effort on the state of the art, from an up-to-day perspective will be a valuable
resource for those interested on managing the quality of the modern mobile software
product, aiming to solve current needs on mobile apps that require high quality products, such as healthcare, banking, and safe-critical apps.
Finally, the works of Wasserman [1], Abrahamsson [3], Dehlinger and Dixon [49],
and Muccini et al. [50] provide important research directions on mobile Software
Engineering, identifying major concerns that may be covered by mobile development
processes in the near future: user experience, integration with cloud computing, mission critical development, energy aware implementations, multiplatform development
and mobile specific testing practices are some of the recommended topics for further
research.
7 Summary and conclusions
The conducted literature survey permitted us to draw the current picture of the State of
the Art and the Practice in the area of quality assurance practices for mobile software.
To answer our research question RQ1, regarding the State of the Art, we were able
to gather a number of software assurance practices for mobile systems, and to determine that these practices are divided in three layers: software development processes,
software product assurance practices, and software implementation practices. The
methodologies and techniques reviewed in this paper call attention on the necessity of
adapting general-purpose processes and practices to the specific needs of the mobile
ecosystem. Current mobile software quality practices have evolved by adapting practices from Agile and plan-based methodologies, incorporating product measurement,
best practices, testing techniques, design patterns, and other similar considerations.
The results of this survey contribute to the State of the Art of Software Engineering
providing a high level picture of the assurance practices available for the mobile
123
Author's personal copy
L. Corral et al.
domain, which provide answers to the emerging and growing need of having mobilespecific software quality assurance processes and reference models.
Mobile devices are currently the most important platform for the introduction and
utilization of software products and services. The trends show a consistent growth in
computing capabilities, number of users and distributed products, configuring a rich
field of research of extraordinary potential and impact. Software Engineering should
not miss the opportunity of exploring how mobile software applications may overcome
the challenges of the mobile environment, profit from the operational possibilities and
business opportunities, and satisfy the needs of the end user. To accomplish this, it is
necessary to assure that the mobile software product meets and exceeds the requirements and expectations of the end user, the mobile environment and the application
market.
The evolution of mobile platforms from being a simple communication and entertainment tool toward becoming the primary end-user computing equipment requires
researchers and practitioners to understand the context of the mobile domain to create
the best strategies to develop and assure mobile software. Mobile Software Engineering still faces an extensive work load to determine what are the best processes
and practices that facilitate the creation of high quality, successful mobile software
products.
References
1. Wasserman AI (2010) Software engineering issues for mobile application development. In: Proceedings
of the FSE/SDP workshop on future of Software Engineering research (FoSER ’10). ACM, New York,
pp 397–400
2. Roman GC, Picco GP, Murphy AL (2000) Software engineering for mobility: a roadmap. In: Proceedings of the international conference on software engineering (ICSE 2000). ACM, New York, pp
241–258
3. Abrahamsson P (2005) Mobile software development the business opportunity of today. In: Proceedings
of the international conference on software, development. pp 20–23
4. Hayes IS (2003) Just enough wireless computing. Prentice Hall. ISBN: 978-0536750624
5. Spataru AC (2010) Agile development methods for mobile applications. Master Thesis, School of
Informatics, University of Edinburgh, UK
6. Rahimian V, Habibi J (2008) Performance evaluation of mobile software systems: Challenges for
a software engineer. In: Proceedings of the fifth international conference on electrical engineering,
computing science and automatic, control, 2008. IEEE, pp 346–351
7. Hammershoj A, Sapuppo A, Tadayoni R (2010) Challenges for mobile application development. In:
Proceedings of the 2010 14th international conference on intelligence in next generation, networks
(ICIN). IEEE, pp 1–8
8. Rao B, Jimenez B (2011) A comparative analysis of digital innovation ecosystems. In: Proceedings of
technology management in the energy smart, world. IEEE, pp 1–12
9. Taivalsaari A, Mikkonen T, Anttonen M, Salminen A (2011) The death of binary software: end user
software moves to the web. In: Proceedings of the 2011 ninth international conference on creating,
connecting and collaborating through, computing (C5). IEEE, pp 17–23
10. Franke D, Kowalewski S, Weise C (2012) A mobile software quality model. In: Proceedind of the 12th
international conference on quality software. IEEE, pp 154–157
11. Abrahamsson P, Warsta J, Siponen MT, Ronkainen J (2003) New directions on agile methods: a
comparative analysis. In: Proceedings of the 25th international conference on software engineering
2003 (ICSE’03). IEEE Computer Society, pp 244–254
12. Shiratuddin N, Sarif SM (2009) The mdmatrix: a learning tool in the mobile application development
course. Int J Mob Commun 7(4):494–514 InderScience
123
Author's personal copy
Software assurance practices for mobile applications
13. Zhang D, Adipat B (2005) Challenges, methodologies, and issues in the usability testing of mobile
applications. Int J Hum Comput Interact 18(3):293–308 Taylor & Francis
14. Gasimov A, Chuan-Hoo T, Chee WP, Sutanto J (2010) Visiting mobile application development:what,
how and where. In: Proceedings of the ninth international conference on mobile business and ninth
global mobility round (ICMB-GMR). pp 74–81
15. Yamakami T (2008) Business model engineering analysis on mobile client-side software platform
strategies. In: Proceedings of the seventh international conference on mobile business, 2008 (ICMB
’08). IEEE Computer Society, pp 59–64
16. Kitchenham B, Charters S (2007) Guidelines for performing systematic literature reviews in software
engineering, version 2.3. EBSE Technical, Report EBSE-2007-01
17. Abrahamsson P, Hanhineva A, Hulkko H, Ihme T, Jlinoja J, Korkala M, Koskela J, Kyllnen P, Salo
O (2004) Mobile-D: an agile approach for mobile application development. In: Proceedings of the
19th annual ACM SIGPLAN conference on object-oriented programming systems, languages, and
applications (OOPSLA’04). ACM, New York, pp 174–175
18. Jeong YJ, Lee JH, Shin GS (2008) Development process of mobile application SW based on Agile
methodology. In: Proceedings of the tenth international conference on advanced communication technology, 2008 (ICACT’08), vol 1. IEEE, pp 362–366
19. Rahimian V, Ramsin R (2008) Designing an Agile methodology for mobile software development:
A hybrid method engineering approach. In: Proceedings of the second international conference on
research challenges in information, science, 2008. IEEE, pp 337–342
20. Scharff C, Verma R (2010) Scrum to support mobile application development projects in a just-in-time
learning context. In: Proceedings of the 2010 ICSE workshop on cooperative and human aspects of,
Software Engineering (CHASE’10). ACM, New York, pp 25–31
21. da Cunha TFV, Dantas VLL, Andrade RMC (2011) SLeSS: A Scrum and Lean Six Sigma integration
approach for the development of software customization for mobile phones. In: Proceedings of the 2011
25th Brazilian symposium on Software Engineering (SBES). IEEE Computer Society, pp 283–292
22. Glissmann S, Smolnik Stefan Schierholz R, Kolbe L, Brenner W (2005) Proposition of an m-business
procedure model for the development of mobile user interfaces. In: Proceedings of the international
conference on mobile business, 2005 (ICMB 2005). IEEE, pp 308–314
23. Nosseir A, Flood D, Harrison R, Ibrahim O (2012) Mobile development process spiral. In: Proceedings
of the 2012 seventh international conference on computer engineering and systems (ICCES). IEEE,
pp 281–286
24. Doolittle J, Moohan A, Simpson J, Soanes I (2012) Building a mobile application development framework. Intel. Available online: http://communities.intel.com/docs/DOC-19555. (Accessed on January
20th, 2013)
25. Spriestersbach A , Springer T (2004) Quality attributes in mobile web application development. In:
Proceedings of the fifth international conference on product focused software process improvement
(PROFES’04). Lecture Notes in Computer Science. vol 3009. Springer, Heidelberg, pp 120–130
26. Mantoro T (2009) Metrics evaluation for context-aware computing. In: Proceedings of the seventh
international conference on advances in mobile computing and multimedia (MoMM’09). ACM, New
York, pp 574–578
27. Ryan C, Rossi P (2005) Software, performance and resource utilisation metrics for context-aware
mobile applications. In Proceeding of the 11th IEEE international software metrics symposium (METRICS’05). IEEE Computer Society, pp 10
28. Hussain A, Ferneley E (2008) Usability metric for mobile application: a goal question metric (GQM)
approach. In: Proceeding of the 10th international conference on information integration and web-based
applications and service. ACM, New York, pp 567–570
29. Pandi K, Charaf H (2013) Mobile performance metrics for resource management. In: Proceedings of
the international conference on system science and engineering. IEEE, pp 329–333
30. Dantas VLL, Marinho FG, da Costa AL, Andrade RMC (2009) Testing requirements for mobile applications. In: Proceedings of the 24th international symposium on computer and information sciences,
2009 (ISCIS’09). IEEE, pp 555–560
31. Liu Z, Gao X, Long X (2010) Adaptive random testing of mobile application. In: Proceedings of the
2010 2nd international conference on computer, engineering and technology (ICCET). vol 2. IEEE,
pp 297–301
123
Author's personal copy
L. Corral et al.
32. Amalfitano D, Fasolino AR, Tramontana P, Amatucci N (2013) Considering context events in eventbased testing of mobile applications. In: Proceeding of the 6th international conference on software
testing, verification and validation workshops. IEEE, pp 126–133
33. Ihme T, Abrahamsson P (2005) Agile architecting: the use of architectural patterns in mobile java
applications. Int J Agile Manuf 8(2):97–112
34. Kamthan P (2008) Towards high-quality mobile applications by a systematic integration of patterns. J
Mob Multimed 4(3):165–184 Rinton Press
35. La HJ, Lee HJ, Kim SD (2011) An efficiency-centric design methodology for mobile application
architectures. In: Proceeding of the 2011 IEEE seventh international conference on wireless and mobile
computing, networking and communications. IEEE, pp 272–279
36. Kim WY, Park SG (2011) The 4-tier design pattern for the development of an Android application.
In: Proceedings of the third international conference on future generation information technology
(FGIT’11). Lecture Notes in Computer Science, vol. 7105. Springer, Berlin, pp 196–203 Heidelberg.
37. Sokolova K, Lemercier M, Garcia L (2013) Android passive MVC: a novel architecture model for the
android application development. In: Proceedings of the fifth international conference on pervasive
patterns and applications (PATTERNS’13). IARIA, pp 7–12
38. de Sa M, Carrio L (2008) Lessons from early stages design of mobile applications. In: Proceedings
of the 10th international conference on human computer interaction with mobile devices and services
(MobileHCI’08). ACM, New York, pp 127–136
39. Marinho EH, Resende RF (2012) Quality factors in development best practices for mobile applications.
In: Proceedings of the 12th international conference on computational science and its applications
(ICCSA’12), vol IV. Springer, Berlin, pp 632–645
40. Corral L, Sillitti A, Succi G (2013) Agile software development processes for mobile systems: accomplishment, evidence and evolution. In: Proceedings of the tenth international conference on mobile web
and information systems (MobiWIS 2013). Lecture Notes in Computer Science, vol 8093. Springer,
Berlin, pp 90–106
41. Pikkarainen M, Salo O, Still J (2005) Deploying Agile practices in organizations: a case study. In:
Proceedings of the European software process improvement and innovation conference (EuroSPI05).
Lecture Notes in Computer Science. Springer, Heidelberg, pp 16–27
42. Hedberg H, Iisakka J (2006) Technical reviews in Agile development: case Mobile-D. In: Proceedings
of the sixth international conference on quality software, 2006. IEEE, pp 347–353
43. Abrahamsson P (2007) Agile software development of mobile information systems. In: Proceedings
of the advanced information systems engineering conference. Lecture Notes in Computer Science, vol.
4495. Springer, Berlin, pp 1–4
44. Rajapakse DC (2008) Fragmentation of mobile applications. National University of Singapore Available online: http://www.comp.nus.edu.sg/~damithch/df/device-fragmentation.htm. Accessed on January 20th, 2013
45. Avram A (2011) A survey on mobile development. InfoQ. Available online: http://www.infoq.com/
news/2011/05/A-Survey-on-Mobile-Development. Accessed on January 20th, 2013
46. Wangenheim CG, Salazar L (2011) Mobile software development survey-response summary. Federal
University of Santa Catarina, Brazil. Available online: http://www.gqs.ufsc.br/wp-content/uploads/
2011/12/GQS-Workingpaper-002-2011-E-v10. Accessed on January 20th, 2013
47. Marko K (2012) Application development in the age of mobility. Information Week, no. 1341. UBM
Tech. ISSN 8750–6874
48. Janes AA, Succi G (2012) The dark side of agile software development. In: Proceedings of the ACM
international symposium on new ideas, new paradigms, and reflections on programming and software
(ONWARD’12). ACM, New york, pp 215–228
49. Dehlinger J, Dixon J (2011) Mobile application software engineering: challenges and research directions. In: Proceedings of the second annual workshop on Software Engineering for mobile application
development, at MOBICASE 2011. pp 27–30
50. Muccini H, Di Francesco A, Esposito P (2012) Software testing of mobile applications: challenges
and future research directions. In: Proceedings of the seventh international workshop on automation
of software test (AST). IEEE, pp 29–35
123