H Model for Handheld Application Development Utkarsh Tripathi , Shrish Bajpai

advertisement
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
Download