Modeling The Mobile Application Development Lifecycle

Transcription

Proceedings of the International MultiConference of Engineers and Computer Scientists 2014 Vol I,IMECS 2014, March 12 - 14, 2014, Hong KongModeling the Mobile Application DevelopmentLifecycleTejas Vithani, Member, IAENG and Anand Kumar Abstract—Software Development Lifecycle is crucial inDesktop or web application development. Mobile applicationsare being developed for deployment in smart phones. Lookingat the rising need of mobile applications and the associateddevelopment complexity, it is imperative to have a dedicatedframework lifecycle for mobile application - MobileApplication Development Lifecycle (MADLC). The proposedlifecycle includes the following phases: Identification, Design,Development, Prototyping, Testing and Maintenance. Thislifecycle has been used for over a year in developing Androidmobile applications. This lifecycle addresses some of thedistinguishing characteristics of mobile applications like lifespan, complex functionalities, fewer physical interfaces, morenumber of screens for interaction, battery and memory usage,cross platform development and maintenance. The preliminaryindicators are that this will benefit the mobile developers tofollow the development process within MADLC to build robustand optimal control applications.Index Terms—Mobile Application Development, MobileDevelopment Lifecycle, Mobile SDLC, MADLC.I. INTRODUCTIONASoftware development lifecycle process is a type ofstructure or framework used in the development of anysoftware product. There are many different lifecycle modelsdefined. Waterfall model, spiral model, prototyping modelare a few such models. Each model is described by asequence of activities. The development steps or theactivities may vary in each and every model but all themodels will include planning, requirement, analysis, designetc. The waterfall model emphasizes more on the step-bystep process. The spiral model emphasizes on riskassessment while the prototyping model takes anincremental approach in each and every phase of thedevelopment process. [1, 2]Designing the product to fulfill the requirements of theuser based on the different standard development lifecyclemodels is a crucial aspect of the development process. Apre-defined development process is of essence. Thedevelopment lifecycle might be impacted if the developmentoccurs incrementally. If the customer is engaged in theManuscript received December, 23 2013; revised February, 5 2014.T. Vithani is a student pursuing M.E (Software System) with ComputerScience Department, Birla Institute of Technology and Science Pilani,Dubai Campus, Dubai, U.A.E (email: tejas.vithani@gmail.com).A. Kumar is Associate Professor with the Electrical & ElectronicsDepartment, Birla Institute of Technology and Science Pilani, DubaiCampus, U.A.E (email: akumar@dubai.bits-pilani.ac.in).ISBN: 978-988-19252-5-1ISSN: 2078-0958 (Print); ISSN: 2078-0966 (Online)development process, customer requirements are betterimplemented by the end of the development process leadingto better customer satisfaction. [1, 2]Waterfall model, Spiral model, Iterative model andPrototyping model are some of the software developmentlifecycle models widely used in the industry. There is needto have a distinct mobile application development lifecyclemodel: mobile application development involves variouscomplex functionality and services like telephony services,location based services and different connectivity modes[2].II. LITRATURE SURVEYA. Desktop Software Application Development ProcessDevelopment of any desktop application involves similarphases of any SDLC [2] irrespective of technology beingused. The output of each and every phase in SDLC feedsinto the next phase. For instance, the requirements gatheredduring the planning phase are analyzed in the next phase.These refined requirements are then designed in the DesignPhase. The design is then implemented in theImplementation Phase. The code generated during theimplementation phase is verified and tested. Customersupport is provided for the designed and deployedapplication.B. Mobile Application Development ProcessIntel IT has created a mobile application developmentframework: this framework defines specific activities, toolsand resources, to support the planning, development anddeployment of mobile applications [3]. Intel has a two-stepprocess defined for developing a mobile application.- Use a pre defined decision matrix; to verify whetherthe application is suitable for mobile development.- Determine the process to be used in delivering theapplication.Slalom Consulting, have defined the mobile applicationdevelopment lifecycle as “Enterprise Mobile ApplicationLifecycle”: this process is for an end-to-end mobileapplication development [4]. They have defined thelifecycle in the following four different phases:- Discovery- DesignIMECS 2014

Proceedings of the International MultiConference of Engineers and Computer Scientists 2014 Vol I,IMECS 2014, March 12 - 14, 2014, Hong Kong- Development/Testing- DeploymentInitially the mobile applications were only developed toimplement calculator, calendar, alarm and currencyconverter functionalities. With the advent of 2G and 3Gmobile networks, web based mobile applications wereimplemented on a variety of platforms; many of the existingweb based applications were ported to platforms on themobile device. These web-based applications includedsocial networking, blogging, sharing of multimedia such asmusic, photos, video over the web [5].Mobile applications can be classified into five majorcategories [6]: Social Networking, Personal ntentDissemination-Based.Mobile application development has received a boostwith two major developments. One development pertains tothe availability of increased network bandwidth going from2G to 3G and now to LTE. The second significantdevelopment is on the mobile device side: large screen,increased memory and high speed processing capability [6].Developers are motivated by these technological advancesto create more innovative applications and services.The differences between PC application development andmobile application development are discussed below.Life SpanThe mobile application is developed to implement one orfew but limited functionality. Java, Objective-C, .net andsimilar traditional development frameworks are used. Dueto these factors, the number of mobile applicationdevelopers is large. Given this intense competition in mobileapplication space, the life span of mobile application is lessas compared to that of any desktop application.More Number of screens for InteractionThe large screen on a desktop or laptop permits morefunctionality to be designed in one screen. With a smallerscreen size being available, the mobile application requiresmore number of layered screens to support a similarfunctionality as a single large screen. Furthermore, themobile application developer should optimize thefunctionality design to maximally utilize the screenavailable for display.Battery & Memory usage by the applicationOptimal usage of the battery and memory is a majordesign consideration in developing mobile applications: themobile phone is on all the day round with many applicationsand services being constantly executed. The mobileapplications should be designed to optimally utilize thememory available. The idle processes running on a desktopor laptop would not consume a significant percentage of theavailable battery or memory in a desktop or laptop as do thetelephony applications on the mobile device.Cross Platform DevelopmentMany mobile operating system platforms share themarket rather equally; developing a mobile application onone platform will not suffice in maximizing access to users.A key factor in choosing mobile application features is itsportability to all major platforms. For example, the Androidplatform is open source making it developer-friendly. Butother mobile platforms like iOS, Windows, BlackBerry areproprietary: they are closed and restrict developers’ accessto internals and thereby limiting features that can beimplemented on the platform. The limitation does not existin the same magnitude in desktop and laptop applicationdevelopment.Complex FunctionalitiesUpdatesMobile application development involves complexfunctionality to interface to telephony, camera, GPS etc.When desktop application are considered the developmentof the application is much more restricted to the desktop orthe laptop device. On the other hand, mobile applicationsmay require the implementation of telephony functionalityto send/receive messages or handle voice calls; theapplication may also require the implementation of GPSfunctionality to track location by fetching latitude andlongitude data.With desktop or laptop applications often sold to the useron a CD, the user registration is not tied to the sale and isoptional. Mobile applications are more often than notdownloaded from the application store; user registrationgoes hand in hand with the download. Hence, it is easier toprovide updates for mobile applications than for desktop orlaptop applications.Fewer physical interfacesAs the mobile applications have complex functionalityand are different from the desktop applications, thefollowing Mobile Application Development Lifecyclemodel (MADLC) is proposed to enable a systematicapproach in development.Desktop laptop have different physical interfaces such askeyboard, mouse, touch panel and other external devices butthe mobile physical interfaces are strictly restricted to touchpanel or the mobile keyboard. The size of the touch paneland keyboard is smaller than that of the laptop. Thesedifferences should be considered in the design of mobileapplications to make them user friendly despite fewerphysical interfaces.ISBN: 978-988-19252-5-1ISSN: 2078-0958 (Print); ISSN: 2078-0966 (Online)III. MOBILE APPLICATION DEVELOPMENT LIFECYCLEMODEL (MADLC)A. Identification PhaseIn the first phase, ideas are collected and categorized.The main objective of this phase is to come out with aIMECS 2014

Proceedings of the International MultiConference of Engineers and Computer Scientists 2014 Vol I,IMECS 2014, March 12 - 14, 2014, Hong Kongnew idea or improvements to the existing application. Theideas can come from the customer or from the developers.If the customer himself comes out with the idea, theidea is further detailed and analyzed. Developers canbrainstorm to generate ideas for new applications. Thefiltered list of ideas is discussed by the mobile applicationidea team comprising of the business and ITrepresentatives for the feasibility to launch a projectaround the idea.The existing applications on any of the standardsplatforms are searched to establish the novelty of the idea.If a similar application exists in the market, the popularityof the application and the features supported are studiedand compared. The differences with the existingapplication(s) are documented. If no similar applicationexists on any mobile platform, then the idea with its corefunctionality should be documented. The other importanttask in this phase is to define the time required to developthe application. The initial requirement gathering shouldalso be completed. The work done by the mobileapplication idea team should then be documented andforwarded to the design team.Fig 2. Design PhaseC. Development PhaseIn this phase, the application is coded. Coding fordifferent modules of the same prototype can proceed inparallel. The development process can be in two stages:Coding for Functional Requirement and Coding for UIrequirements. The code is developed first for the corefunctionalities. Parallel development can be done formodules of the same prototype that are independent of eachother. Subsequently, these modules can be integrated. In thesecond stage, user interface is designed so that it can besupported on as many mobile operating system platforms aspossible; it is not good practice to have a different look andfeel for the same application on different platforms. Theminimum set of interface components present in all mobileOS platforms should be used in the design. Finally, thedocumentation of the development phase is then forwardedto the prototyping phase.Fig 1. Identification PhaseB. Design PhaseIn this phase, the idea from the mobile application teamis developed into an initial design of the application.The feasibility of developing the application on allmobile platform is determined. Alternatively, the specifictarget mobile platform is identified. A decision has to bemade on whether the developed application is to bereleased as a free version or trial version with limitedfeatures or released only as a premium version. Theapplication functionality is broken down into modulesand into prototypes i.e., combination of modules whichare to be released in the prototype fashion. The functionalrequirements are defined. The software architecture of theapplication is created. Then the prototypes and associatedmodules are defined. A very important part of the designphase is to create the storyboard for the user interfaceinteraction: this storyboard describes the flow of theapplication. The design team’s work is documented andforwarded to the development team for coding.ISBN: 978-988-19252-5-1ISSN: 2078-0958 (Print); ISSN: 2078-0966 (Online)Fig 3. Development PhaseD. . Prototyping PhaseIn this phase, the functional requirements of eachprototype are analyzed; the prototypes are tested and sentto the client for feedback. After feedback is received fromthe client, the required changes are implemented throughIMECS 2014

Proceedings of the International MultiConference of Engineers and Computer Scientists 2014 Vol I,IMECS 2014, March 12 - 14, 2014, Hong Kongthe development phase. When the second prototype isready, it is integrated with the first prototype, tested andthen sent to the client. The development, prototyping andtesting phases are repeated until the final prototype isready. The final prototype is sent to the client for a finalfeedback. The work done in this prototyping phase isdocumented and then forwarded to the testing phase. Design the icon and wallpaper to be used on theapplication store. Create the file format required on operatingsystem platform.Fig 6. Deployment PhaseG. Maintenance PhaseFig 4. Prototyping PhaseE. Testing PhaseTesting is one of the most important phases of anydevelopment lifecycle model. The testing of the prototypetypes is performed on an emulator/simulator followed bytesting on the real device. The emulator/simulator is oftenprovided in the SDK. The testing on the real device, forexample in the case of Android operating systemdevelopment, should be performed on multiple operatingsystem versions, multiple models of handsets withvariable screen size. The test cases are documented andforwarded to the client for feedback.The maintenance is the final phase of this model and thismaintenance is a continuous process. Feedback is collectedfrom users and required changes are made in the form ofbug fixes or improvements. Appropriate security patches,performances improvements, additional functionality, newuser interfaces should be provided at regular intervals in theform of updates to the application. The maintenance phasealso includes the marketing of the application: advertisingand highlighting its unique features. If any applicationrequires a backend server: this server and related operatingsystem must be maintained as well.Fig 7. Maintainance PhaseFig 5. Testing PhaseF. Deployment PhaseDeployment is the final phase of the developmentprocess. After the testing is completed and the finalfeedback is obtained from the client, the application is readyfor the deployment. The application is uploaded to theappropriate application store/market for user consumption.Before the application is deployed, the following steps areto be checked. Register as a developer on the respectiveapplication developer’s website by paying theannual fee, if necessary, for respective OS. Check the rules and regulations of theapplication store for the deployment of anapplication. Refine the application, for example, byremoving all the log files and comments.ISBN: 978-988-19252-5-1ISSN: 2078-0958 (Print); ISSN: 2078-0966 (Online)IV. PRELIMINARY RESULTS OF APPLYING THE MADLCAn industry-oriented application was developed usingMADLC model. This application includes use of GPSlocating service, telephony services like sending SMS,configuring device profile. The development of thisapplication development provided a test case for theproposed MADLC. All the functional requirements of theapplication were divided into various modules and deliveredin a prototype fashion to the organization at variousintervals. The outcome of the development process is thatthis model helped the developers to plan and execute theapplication involving various features in a more effectivemanner.V. CONCLUSIONA Mobile Application Development Lifecycle (MADLC)has been proposed to bring out a formal lifecycle for mobileapplication development. MADLC will aid the mobileapplication developers in developing high-end apps. Thislifecycle includes the following phases: Identification,IMECS 2014

Proceedings of the International MultiConference of Engineers and Computer Scientists 2014 Vol I,IMECS 2014, March 12 - 14, 2014, Hong enance. The different tasks and activities in thevarious phases of MADLC have been discussed. Thislifecycle also addresses some of the distinguishingcharacteristics of mobile applications like life span, complexfunctionalities, fewer physical interfaces, more number ofscreens for interaction, battery and memory usage, crossplatform development and maintenance. Preliminary testingof the MADLC indicates that this lifecycle will helpdevelopers and project managers in efficiently executeprojects and deliver solutions on time.REFERENCES[1]Dr. Drrpshikha Jamwal “Analysis of softwareDevelopment Models”, ISSN: 2229-4333 (print),ISSN:09768491 (online), vol. 1ISSUE 2, December2010.[2] Ian Sommerville, Software Engineering, 8th edition.[3] IT Intel White Paper, “Building a Mobile ApplicationDevelopment Framework”, August 2012.[4] Daniel Mavcock, Slalom Consulting, “EnterpriseMobile Application Lifecycle.”[5] State of the Mobile Web Opera, April 2008.[6] Gasimov, Anar, et al. "Visiting mobile applicationdevelopment: What, how and where." Mobile Businessand 2010 Ninth Global Mobility Roundtable (ICMBGMR), 2010 Ninth International Conference on. IEEE,2010.ISBN: 978-988-19252-5-1ISSN: 2078-0958 (Print); ISSN: 2078-0966 (Online)IMECS 2014

development is on the mobile device side: large screen, increased memory and high speed processing capability [6]. Developers are motivated by these technological advances to create more innovative applications and services. The differences between PC application development and mobile application development are discussed below. Life Span