Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Software Assurance Practices for Mobile Applications

2015, Computing

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