International Journal of Engineering Trends and Technology (IJETT) – Volume 20 Number 3 – Feb 2015 H Model for Handheld Application Development Utkarsh Tripathi#1, Shrish Bajpai#2, Mohd. Arshad#3 # Electronics & Communication Engineering Department, Faculty of Engineering, Integral University, Lucknow, India. Abstract—Market of electronics devices is growing very rapidly throughout the globe, development of associated softwares & applications for these devices are expanding in manifolds. A large number of handheld softwares have been develop with the help of existing software through component driven development approach. This will save the development cost, time & man power. Application development cost, time to hit in market and quality product are the three major factors affecting any handheld application in the market. H Model is proposed for the development of handheld application which lays emphasis on domain engineering, time management, cost estimation & risk analysis in every phase to improve the quality of the application and it also reduce the time & cost of the application. Keywords— Handheld application, Software development model, H Model. I. INTRODUCTION Demand of portable electronics devices & handhelds are growing day by day. These portable devices are used in our daily life. It has been observed that electronics product & handheld companies are launching new electronic devices in a short spam of time in market[1]. Any electronic device know for it's hardware configuration, working performance & loaded applications. But most software & application loaded in electronic devices are almost similar to existing application loaded on other device but a little change as they have different hardware configuration or different operating system. Moreover, these applications should be compatible to their respective hardware configuration. Many applications are based on open source technology, so their code is also available. It has been realized that component base software development approach, promotes code reusability, software quality & increase software engineer productivity. Component based software development emerged in the late 1990 as a reuse based approach for software (application) development. It's principle is to reuse already existing software components or code or test cases or test scripts instead of developing everything from the beginning of the development of a new software. But the main constraint in this approach is that all software engineers working in the team have domain knowledge about the application development[2]. Now a day's, people do not want to keep one handheld device for a long time & purchase a new handheld with their requirements. With development new advance telecommunication networks, it generates a great demand of compactable handheld device which is more focus on cellular data transfer & internal processing power with more battery life. Handheld manufacturing companies are launching their new products in market with a short spam of time having ISSN: 2231-5381 minor change in the hardware of handheld & importing new applications as well as popular applications to the handheld[34]. Now software companies are focusing to make these handheld applications compatible with the desktop environment, so that it should be install with the more & more digital devices. Electronic hardware companies are now focusing on that type of electronic devices which can perform more then a single task with the minimum size. There are many software design models exits (Waterfall Model, V Model, Spiral Model, Increment Model, Prototyping Model, Y Model, X Model, W Model etc) but they do not address the issues related to application development specifically, domain related issues & more over they have too many steps that makes the development of application complicated, cost in development complete application & time taking in completion of application. Now there is a demand to develop a new software design model, based on component based software development for the developing the different application for handhelds which is more focus on the development of application[3]. Proposed H model have many benefits from other existing software models which are following 1. H model is based on component driven product development approach where development of any new application or modification of any existing application (change in version or revision) is done with the help of existing code. 2. H model is simple & easy to understandable and implementation in development of handheld application development. 3. H model is applicable on one member team or small team of few members with big team who involve in the development of handheld application. 4. Each development activity is mirrored by dedicated QA (testing) activity. II. H MODEL Since the market of electronic devices & handheld devices are changing very fast now a days. Development or extension or enhancement or improvement or revision of any existing handheld or embedded application with the component base development approach is advisable. Present model is suitable for development of new application as well as revision or updation of existing application. http://www.ijettjournal.org Page 121 International Journal of Engineering Trends and Technology (IJETT) – Volume 20 Number 3 – Feb 2015 Any change in the high level documentation software requirement specification (srs) for development team & test strategy document for QA (Testing) team is done at any stage but not at the end stages of the proposed H Model. Proposed H Model has seven stages in which each development activity is mirrored by a dedicated testing activity as shown in FIG 1. Application development process start as soon as marketing team of the electronic device companies freeze the requirements of development of application for the proposed hardware. Each development activity is represented with the mirrored QA activity in below. Application development process get started from the development requirement analysis phase which is followed by system specification, component selection, development outline, code development, module development and get completed at operational system development phase. Similarly application QA process have seven different stages which is mirror activity to the development process start from QA requirement analysis phase followed by test system specification, QA process outline, test script & test case document selection, unit testing, integration testing and get concluded at system & user interface testing phase. Development requirement analysis phase of the development process, issues related to resource planning including team size (number of engineers needed with their experience), software & hardware needed for the development & in how many platforms (different hardware configuration, operating system configuration & geographical location for language issues) this develop application have to distributed is discuss in this current phase. In this opening phase, it is also considered that any add on item(s) have to develop with this application & which technology (programming technology & language) will be used in the development of the application from development end. Manager, team leads & software architecture handles this phase & major outcomes will be share with the other team members at appropriate time[5-6]. QA requirement analysis phase check that weather requirements meets & QA team make it's own test strategy how to do the QA process with the development team for this application. Time related, number of releases of the application for regression testing, functional, how much automation and manual testing & non functional testing process is also covered and discuss in this stage. QA manager & test leads handles this phase and major outcomes share with the team members. ISSN: 2231-5381 A 1 B 2 C 3 D η 4 E 5 F 6 G 7 A : Development Requirement Analysis B : System Specification C : Development Outline D : Component Selection E : Code Development F : Module Development G : Operational System Development η : Repository 1 : QA Requirement Analysis 2 : Test System Specification 3 : QA Process Outline 4 : Test script & Test Case Document Selection 5 : Unit Testing 6 : Integration Testing 7 : System & User Interface Testing FIG 1 : H model with different stages for handheld software development Systems specification phase is handle by the software architecture who has the domain experience in developing the applications. The system requirement phase demands the software architecture to study the whole application and its constraints (software or hardware or other), understand the major features & sub features of the application, understand the requirements expected to be satisfied on the target device http://www.ijettjournal.org Page 122 International Journal of Engineering Trends and Technology (IJETT) – Volume 20 Number 3 – Feb 2015 (operating system & hardware configuration of device), how much reusable modules or component or code can be develop & generate an abstract model of the application in which these requirements are met. If any things does not match, should inform the concern manager & marketing expert to change the requirement(s). The major outcome of this phase, is a graphical or textual outline of a abstract model of the application under development. At this phase, the services delivered by a software system help figure out its subsystems and major components. Test system specification phase is handle by the test lead with assistance of test manager to study the application & it's QA requirements for testing of function & non functional requirement. Any tool (for function & non function requirement) needed for QA process is finalized in this phase. QA team design it's test strategy & test plan for the testing of application. Test strategy is a document which should be design for one time but get revised if any changes occur during the developing of the application in later phases. Test plan may be made for each general or regression release of application. Development Outline phase is handle by the development team manager & every member of the his or her team is included. Here, a clear plan of the application development is finalized. QA process outline phase is handle by the test manager & every member of the his or her team is included. Here, a clear plan of the application testing is finalized. Component selection phase is connected with last corresponding phase as outcome of last phase is implemented here. Reusable components or feature or module of the existing application should be taken from the connected Repository. Test script & test case document selection phase is connected with the Repository. QA team have to take existing test cases for corresponding feature whose code is taken my the development team but they need to check that these test cases & test scripts covers all the features or module for black box testing and a good code coverage for the white box testing. It has to be noted that test scripts should be associated with the same testing tool. QA team needs to modify the existing test cases, test scenario & test scripts if there is any change in implemented hardware configuration or operating systems where the existing feature or module was deployed. After identification of the reusable code, features, module, test case & test scripts of existing application in Repository, code development phase get started with development of small codes with the help of different functions & subroutine. In code development process, code should be less complex and effective so that less amount of time is needed for processing the application. Unit implementation, exception handling, code complexity, memory leakage, dynamic resource usage related, basic performance, local data structure error, synchronization with other application or feature or network of the device & graphical user interface formatting related issues are cover in the unit level test cases. For critical applications such that embedded, security applications or banking application, unit level testing (code coverage & ISSN: 2231-5381 statement coverage) is done by the QA team in white box testing process. But generally this unit level testing is perform by the developers as they are comfortable with the internal structure of the code. Module development is the development of independent features of the application, integrates with the given interface & other feature of the application. A module is a independent entity which consists a single block of code that can be invoked in the way that a procedure, function or method is invoked. Interface integrity, data loss, data sharing error, exception handling, resource hogging, build & functional issues with network associated issues (if any) are covered in the integration testing. Integration testing have two objective that detect the defect those occur at the interface of the units or module & assemble the individual module into working subsystems and finally a complete system that is ready for the system test. Major outcome in this phase is that functionality of the individual feature of proposed application should be develop & tested before moving to the last phase of the proposed model. All defect which is detect by the QA team should be lock in some bug tracking tool so that bug finding & bug fixing process should be monitored by some higher official of both teams. Operational system development and system & user interface testing is the last phase of development and QA processes. In operational system development, all modules or features are get integrated, creates a system or application. This system (application) should be compatible with the operating system & other application present (install) in the handheld. In this phase fixing the bugs is the most complicated task for the development team. All bugs should be closed while product is going to market. Functional & non functional issues which includes performance, load, stress, reliability, usability, security, configuration, compatibility & recovery issues are covered in the system & user interface testing. QA team have to perform black box testing to test the application in the system testing. QA team which is separate from the other teams have to test application on the shoe of the end users or customers. If the application is associated with the network end, then field testing is necessary which test network related issues & parameters such that network coverage, mobility, signal strength etc issues.. III. AN EXAMPLE We have to develop a handheld application "Birthday Wishes". It is the application, which is use to store the birthday of the contact whose number is store in the handheld memory (Not in SIM memory). At the time of adding a new contact, it ask user to store the date of birth of contact by default. If user does not wish to store then he or she can discard it. As alternative, user can also go to edit feature & put the date of birth for that contact. This application works with the calendar & time of handheld & for giving the birthday alert alarm (default time set by user). This application "Birthday Alert" has to redevelop with adding some new feature under the guidance of proposed H http://www.ijettjournal.org Page 123 International Journal of Engineering Trends and Technology (IJETT) – Volume 20 Number 3 – Feb 2015 model with existing code. In the adding new features which are sending the automatically default message to the contact having birthday through short message services or any internet message services, time set by user. A calling feature of initiation of a call to default number of contact after getting authorization from the user is also have to get integrated in the existing " Birthday Alert" application. For development of the new application "Birthday Wishes" from the existing "Birthday Alert" application. First all requirements, hardware and software configurations & operating system of the target device, programming environment use to develop application, size of the application, it is need to check that this application should be compatible with the other applications or features going to present in handheld, geographical location of the target device, tool needed for functional and non functional testing & analysis and test requirement for testing of this application have to be gather. First we will see the development process the we will go through QA process. In development requirement analysis phase, all requirement related to development of the application development has been discuss such as team size, platform, target device hardware & software configuration with it's operating system. System specification phase some framework of development of application have to be drawn such as how many functionality or features need to be develop, dependable functionalities of the application. In the "Birthday Wishes" application, calling feature is dependable on available credits (amount) to make a call or network should be present to make a call or to send the message. So these things should be checked. In development outline phase, how many reusable code or component or module should be take form the repository. After the clear requirements & project flow, reusable code, component, respective test case & test scripts have be fetch from the connected repository. In code development phase, small program has been made to do some meaningful tasks. Individual feature or module is develop in the module development phase. If feature or some component of feature is present in database then it should be reused. All features or module of the Birthday Wishes get integrated in the operational system development phase. Other hardware, operating system & other install application compatibility issues should be resolved in this phase. IV. CONCLUSIONS Present H model is suitable for the all type of handheld applications development & also development of any other product which is developing with the component base development process. Present H model is use for the all type of handheld & embedded application development as well as development of any other product which is developing with the component base software development approach from already present code or module of existing application or software . H model has a clear requirement specification, understanding requirement & it's implementation in developing the application, low cost, effective recourse utilization & no overlapping issues in different phases. This model have many advantages. This models works from small team to the big team. This model has some shortcoming such that domain knowledge person is needed, code & test cases should be available for the modification or updation of existing application. During the different QA phases, the developer or development team is responsible for the removal of defects and the correction of the implementation in the next regression or phase to move the progress cycle ahead. The early collaboration and the tight co-operation between the development & QA team can often in practice avoid conflict meetings. In application development, the most important aspects may vary or change and so therefore the resource allocation is unlikely to be equal across all activity. For highly critical applications such that banking application or ecommerce application or security application, the test activities certainly have higher weighting or at least equal weighting with other activities. REFERENCES [1] [2] [3] [4] [5] [6] ISSN: 2231-5381 Kumar, Sameer, and Christopher Zahn. "Mobile communications: evolution and impact on business operations." Technovation 23.6 (2003): 515-520. K.K. Aggarwal & Yogesh Singh, 'Software Engineering", New Age Publication, India, 2008. Tiwari, Sanjana, Shrish Bajpai, and M. Arshad. "Modified W Model for Handheld Application Development.", International Journal of Engineering and Technical Research (IJETR), ISSN: 2321-0869, Volume-2, Issue-12, December 2014. Bajpai, S., & Tiwari, S. "Psi (Ψ) Model For Handheld Application Development", International Journal of Engineering and Technical Research (IJETR), ISSN: 2321-0869, Volume-3, Issue-1, January 2015. Xia Cai, Michael R. Lyu, and Kam-Fai Wong. Component-Based Embedded Software Engineering: Development Framework, Quality Assurance and A Generic Assessment Environment, International Journal of Software Engineering and Knowledge Engineering Vol. 12, No. 2 (2002) 107. Pendharkar, Parag C., and James A. Rodger. "The relationship between software development team size and software development cost." Communications of the ACM 52.1 (2009): 141-144. http://www.ijettjournal.org Page 124