Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
AnafiBabatunde
ANDROIDSOFTWAREDEVELOPMENTPROCESS.Casestudy:ChronometerX
Thesis
CENTRALOSTROBOTHNIAUNIVERSITYOFAPPLIEDSCIENCES
DegreeProgrammeinInformationTechnology
May2015
ABSTRACT
UnitKokkola-Pietarsaari
DateMay2015
Author/sBabatundeAnafi
DegreeprogrammeInformationTechnology
NameofthesisAndroidsoftwaredevelopmentprocess:CasestudyofChronometerX
InstructorKaukoKolehmainen
Pages[71]
SupervisorKaukoKolehmainen
Artificial intelligence is advancing rapidly, IntegratedCircuitry technology is progressingswiftlyandcomputerprocessorspeedisincreasing.Thus,thefutureofmobilecomputersseems increasingly thrilling.Compactand smallmobile computersaregradually gainingground inthecomputerworld.ThefutureofComputersmaybehandheld,wearableorevensmaller.
Thehumanpersonallifestyleandworkinglifestylehavechangeddramatically;ourmobiledevices continue to influence our lifestyle. The number of active mobile devices andhuman-beings crossed over somewhere around the 7.19 billion mark, and Androidphonesaccount for about80%of them.Thus, this thesis is basedonAndroid softwaredevelopmentprocessusingChronometerX(theAndroidapplicationdevelopedduringtheproject)asacasestudy.
The aim of this thesis is to report the six phases of the development life cycle ofChronometerX: requirement gathering and analysis, design, implementation or coding,testing, deployment and maintenance. Requirement gathering and analysis is the firststage in the development of an application. It involves collecting and analysing thefunctions and services a proposed system should perform. The design andimplementationstageisthepointwhereafunctionalsoftwareisdeveloped.Thesoftwaredeveloped is tested with respect to the requirements collected during requirementgathering and analysis. The verified software is published to users at the deploymentphase.Thelastphaseinthelifecycleofasoftwareisthemaintenanceprocess.Softwaremaintenanceinvolvesprovidingacosteffectivesupporttoanapplicationandretiringtheapplicationifnecessary.Applicationdevelopmentisanever-endingstory;thestoryendswhentheapplicationisretired.
KeywordsAndroid application, Mobile software development, software design, softwareimplementation, software requirement and analysis, software testing, softwaremaintenance.
CONTENTS
1INTRODUCTION 1
2ANDROIDOPERATINGSYSTEM(OS) 32.1AndroidInterface 42.2AndroidApplications 52.3AndroidSoftwareDevelopment 6
3CHRONOMETERX 93.1RequirementgatheringandAnalysis 93.2Functionalandnon-functionalrequirements 113.3RequirementsSpecification 123.4Softwarespecification 133.5SoftwareModelling 15
4INTERACTIONMODELS 164.1ChronometerX’sUsecasedocumentation 164.2TimerUsecasedocumentation 214.3To-dolistUsecasedocumentation 264.4CalendarUsecasedocumentation 304.5AlarmUsecasedocumentation 32
5.DESIGNANDIMPLEMENTATION 385.1Mainactivityorsummaryscreen 395.2Calendar 425.3Alarm 435.4To-dolist 455.5Stopwatch 465.6Timer 47
6TESTING 486.1DeviceVariationandMobileTestingToolAvailability 48
7DEPLOYMENT 547.1PreparingtheReleaseCandidateBuild 55
7.1.1GatheringMaterialsandResources 567.1.2ConfiguringYourApplicationforRelease 577.1.3BuildingYourApplicationforRelease 597.1.4PreparingExternalServersandResources 597.1.5TestingYourApplicationforRelease 60
8MAINTENANCE 618.1TypesofMaintenance 61
9EVALUATIONANDDISCUSSION 649.1Goalsandresultsofevaluation 649.2Evaluationcriteria 659.3Evaluationtechniques 659.4ChronometerXEvaluation 66
9.5EvaluationConclusion 70
10CONCLUSION 71REFERENCES
1
1INTRODUCTION
Theadvancement intechnologyhas increasedthecapacityandthecapabilityofmobile
devices drastically. Smartphones unlike classic mobile phones can now perform
computer-likefunction.Thus,theyarecomputerswithlimitedfeatures.Thesmartphone
isnowmorepowerfulthanithaseverbeen,asmartphonecannowbeusedforvarious
purposes aside from just making calls and sending SMSs. These devices can now be
utilizedformultipletasksthatwillnormallyrequiredifferentgadgets likedigitalcamera
andmusicplayer.
TheAndroidPlay Store is a large and lucrativemarket formobile softwaredevelopers.
Android devices accounting for more than 80% of activated mobile devices.With this
number of activated Android device users; the Play Store seems like a gold mine to
software developers. The fast increasing number of Android mobile phone users has
attractedmanysoftwaredevelopers.Thus,therateatwhichthenumberofapplications
inAndroidPlayStoregrows isenormous;there isalwaysmorethanoneapplicationfor
thesamepurpose.Thissituationhaschallengeddeveloperstobecomemoreinnovative
intheirdevelopment.
Thegoalofthisprojectistorecreatethemobileclockapplicationanddocumentthesix
stages of the development life cycle of the application; requirement gathering and
analysis, design, implementation or coding, testing, deployment andmaintenance. This
project’sgoalwasachievedbyintegratingfivedifferentapplicationsintooneapplication
package:Alarm,Calendar,Stopwatch,TimerandTo-dolistandalsodeliverthesummary
ofupcomingeventsortaskstousersonaseparatescreen(Activity).Themajorinnovation
intheprojectisthesummaryscreen.TheChronometerXisanalphalevelapplicationand
is yet to be published in the Android Play Store. This thesis only describes the
developmentcycleanddoesnot includetheactual implementationprocess (thecoding
phase).
The application (ChronometerX) reported in this thesis was built using Eclipse Android
DevelopmentEnvironment.Theprogramming languageused isJava.TheGUI(Graphical
user interface)wasdevelopedusingXML (ExtensibleMarkup Language), but controlled
2
withJavaprogramminglanguageandtheimagesusedintheapplicationwereeditedwith
Adobe Photoshop CS6. The feasibility study conducted during ChronometerX’s
developmentwasmainlydownloading,usingandanalyzingrelatedapplicationsfromthe
AndroidPlayStore.TheMinimumRequiredSDKversionfortheChronometerXisAPI17
(Android 4.2, JELLY_BEAN_MR1) and the Target SDK version is API 21 (Android 5.0,
LOLLIPOP). The Application prototype was tested on various real Android devices like:
SamsungGalaxyTrend,OnePluse1,andSamsungGalaxyNote2.Theapplicationwasalso
testedonvirtualdevices: SamsungGalaxyS5andGoogleNexus6.Genymotionwas the
Androidemulatorusedduringapplicationtesting.
Thecontentsof this thesisworkstartsbydescribing theAndroidoperatingsystem(OS)
and Android software development process, followed by and illustration of what
ChronometerX is. These descriptions are followed by a consecutive explanation of
ChronometerX’s Application life cycle: requirement gathering and analysis, design,
implementation or coding, testing, deployment, and maintenance. Requirement
gatheringandanalysisisthefirststageinthedevelopmentofanapplication.Itiswhere
the software’s requirements are gathered. The designing phase involves identification
and conceptualization of software components, including their relationships and
connections, based on requirements collected during the requirement gathering and
analysisphase.
Theimplementationorcodingstageiswheretheactualprogrammingoccurstoproduce
aworkingapplication.Theapplicationistestedagainsttheacquiredrequirementsinthe
testing stage and published in the deployment phase. Application development is a
never-ending story. Thus, the maintenance process is the last stage in the software
developmentlifecycle.Softwaremaintenanceinvolvesprovidingacosteffectivesupport
toanapplicationandretiringtheapplicationifnecessary.
3
2ANDROIDOPERATINGSYSTEM(OS)
TheAndroidoperatingsystempowersmorethanabillionsmartphonesandtablets.The
operatingsystem(OS)basedontheLinuxkernelhasauserinterfaceentrenchedondirect
manipulation.Androidwasfundamentallydesignedfortouchscreenmobiledevicessuch
as smartphonesand tablet computers.Androidhasbeenadaptedwith specializeduser
interfaces for televisions (Android TV), cars (Android Auto), game consoles, digital
cameras, regularPCsandevenwristwatches (AndroidWear).SinceAndroid isbasically
designed for touchscreen mobile, it employs the uses of touch inputs that mimic
everydayhumanactions liketapping,pinching,swiping,andreversepinchingtocontrol
objects on the screen. It also includes a virtual keyboard; some Android devices also
provide a physical keyboard for textmanipulation. Google currently develops Android;
eachversionofAndroidoperatingsystemisnamedafteradessert.Forexample,Android
5.0iscalledLollipop.(AndroidOpenSourceProject2015c;Sheusi2013.)
Google Play, formally know as AndroidMarket (released in October 2008) is Google's
officialstoreandportalforAndroidapplicationsandgamesincludingotherdigitalmedia
contents such as movies, music, eBooks magazines, films and TV. Applications that
require no fee to download are available all over the world and paid applications are
obtainable only in certain countries. Physical devices and accessories, such as phones,
tablets, chromecast (TV and Video), device cases and cords are also available on Play
Store(Nickinson2015).AsofFebruary2015thenumberofapplicationsonPlayStorewas
estimated to be around 1.4million and the applications downloads from Play Store is
approximately50billion.TheGraphbelowshowsa statisticof theestimated figuresof
applicationsavailableon theGooglePlayStore fromDecember2009 toFebruary2015.
(TheStatisticsPortal2015.)
4
GRAPH1.ThenumberofavailableapplicationsintheGooglePlayStorefromDecember
2009toFebruary2015(TheStatisticsPortal2015.)
2.1AndroidInterface
The Android input subsystem enables input from various device classes; touchscreen,
keyboard, joystick, mouse, and trackball. For mobile devices running the Android
operatingsystemthedefaultdeviceclassisthetouchscreen.Thetouchscreenemploys
direct manipulation that simulates everyday human actions. For example, tapping,
pinching, swiping, and reverse pinching to control objects on the screen, including a
virtualkeyboard.Thescreenisdesignedtoprovidefluidtouchinterfacesthatrespondto
user input immediately. Devices may also give haptic feedbacks utilizing the vibration
capabilitiesofanAndroiddevice.Androidapplicationsmayalsoutilizeinternalhardware
suchasaccelerometers,gyroscopesandproximitysensorstorespondtoadditionaluser
actions. Such respond is establishedwhen a user changes the screen orientation from
portraittolandscapeorviceversa(dependingonhowthedeviceisoriented)byrotating
thedevice.(AndroidOpenSourceProject2015d;AndroidOpenSourceProject2015e.)
WhenanAndroiddevice isswitchedon, itbootstothehome-screen(if it isnot locked
with a passcode). The Android home screen is similar to the PC desktop, the Android
home-screen primarily consists of application icons and widgets. When an application
icon is clicked or taped it launches the associated application. On the other hand, the
5
Android widgets display current or auto-updating content; for example, time, a news
ticker, weather forecast, and similar updates directly on the home-screen. A typical
Android home-screen may contain numerous pages; which user can swipe trough.
However, an Android device home-screen is profoundly customisable. it processes
functionalities,whichallowuserstoadjustthelookandfeeltotheirtaste.Usersmayalso
download third party home applications from the Play Store. (Android Open Source
Project2015f.)
2.2AndroidApplications
Androidnativeapplications (“apps”)areAndroidsoftwareapplicationsthatextendsthe
functionalityofanAndroiddevice.AndroidapplicationstypicallyconsistsofActivities.An
Activity is a single thing an Android user can do at a given time; it is the focus of the
screen. Virtually all Activities are interactive. Thus, the Activity class is charged with
creating a window for an Android developer to place his/her User Interface. (Android
OpenSourceProject2015i.)
Android native applications are written in the Java programming language using the
Android softwaredevelopmentkit. TheseapplicationsworkonlyonAndroiddevicesor
Android emulators; Android Application is an exception to the "write once, run
anywhere"claimof theJavaplatform.TheAndroidsoftwaredevelopmentkit (SDK) isa
collection of software tools used in the development of an Android application. The
Android SDK comprises of an emulator based on QEMU, required software libraries,
relevantdocumentationfortheAndroidapplicationprograminterfaces(APIs),debugger,
samplesourcecodes,andtutorialsfortheAndroidOS.(Janssen2015a.)
The official Android SDK is Android Studio, which is based on IntelliJ IDEA, other
developmenttoolsareavailableforAndroidsoftwaredevelopment.Thesetoolsinclude,
Native Development Kit, Google App Inventor and various cross platform mobile web
applicationframeworkssuchasMasons,PhoneGapandSencha.NativeDevelopmentKit
(NDK) is a set of development tools used to write the critical parts of an Android
application in C or C++ programming language. Android advises Android application
6
developerstouseNDKonlyifitisessentialtotheappbeingdeveloped—notbecausethe
developers is more comfortable writing programs in C or C++ Programming Language
(Janssen2015b;AndroidOpenSourceProject2015g).GoogleAppInventorwascreated
toenablepeoplewithnoprogrammingexperiencetodevelopanapplicationforAndroid
devices.(Hardesty2010.)
TheGooglePlayStorecontainsafastgrowingnumberofthird-partyapplications.Android
applications can be downloaded fromGoogle Play Store (the official Android store) or
third-party stores (suchasGalaxyApp,AmazonAppstore,GetJar, F-DroidandSlideMe)
using the store’s application program that allows users to install, update, and remove
applicationsfromtheirdevices.AnAndroidusermayalsodownloadand installAndroid
applications from other sources such as websites, but such a user will have to enable
installation of applications from unknown sources from the Android device’s security
settings. Android application package, APK (. apk) is the installable file format of an
Android application.Asof February 2015, thenumberof applications availableonPlay
Storewasaround1.4million.(Soomro2014;TheStatisticsPortaletal.2015.)
2.3AndroidSoftwareDevelopment
AndroidsoftwaredevelopmentistheprocessofcreatingorwritingApplicationsoftware
for theAndroidoperating systems.Android application is typically developedusing the
AndroidSoftwareDevelopmentKit (SDK). TheAndroidSoftwareDevelopmentKit (SDK)
enables a developer to separate the programming logic from the presentation layout
(Graphical User Interface). The control codes are written in the Java programming
language,while thepresentation layout is coded in ExtensibleMarkup Language (Leiva
2014). Android application development is similar to other software development. It
consists of several phases. The basic steps involved in Android software development;
include, Environment Setup, Project Setup and Development, Building, Debugging and
testingandPublishing.
EnvironmentSetupphaseinvolvessettingupthesoftwaredevelopmentenvironmentto
beusedduringtheapplicationdevelopment.Italsoinvolvespreparingbasictestingtools
7
totesttheprogressoftheapplicationbeingdeveloped.SuchtoolsmightbeanAndroid
VirtualDevice(AVD)orrealAndroiddevices.ProjectSetupandDevelopmentisthestage
whereadevelopersets-upanddevelopstheAndroidapplicationprojectandapplication
modules. The applicationmodules hold all the application’s source codes and resource
files (for example XML files, and pictures). As the application development progresses,
therewill come a phasewhere the application developerwouldwant to seewhat the
application actually looks like and also check if the implemented functionalities are
workingproperly.(AndroidOpenSourceProject2015h.)
DuringtheBuilding,DebuggingandTestingphasetheAndroidprojectisfirstbuiltintoa
debuggable .apk package(s), which can install and run on and Android emulator or an
Android-powered device. After building and installing the Application on an Android-
powereddevice,thedevelopercancheckforanddebugerrorsmanuallyorusingtheSDK
debuggingandloggingtools.Afterdebuggingtheapplication,adevelopershouldtestthe
efficiencyofthedevelopedapplicationandvariousotheraspectsusingtheAndroidSDK
testing tools. The publishing phase involves releasing and distributing the finished
application to the users. Graph 2 shows the Android workflow in chronological order.
(AndroidOpenSourceProject2015h.)
8
GRAPH2.TheAndroidAppWorkflow(AndroidOpenSourceProject2015h).
9
3CHRONOMETERX
TheChronometerX isanAndroidapplication. itconsistsof fivedifferentutilities:Alarm,
Calendar,Stopwatch,TimerandTo-dolistutility.TheaimofChronometerXistocompile
five basic and essential applications into one application package and give the user a
summaryoftheupcomingeventsintheapplicationmainactivity(screen).
3.1RequirementgatheringandAnalysis
Softwarerequirementsarethedescriptionsofwhatasystemorsoftwareshoulddo,that
is,theservicesitshouldprovideandthelimitationsonitsoperations.Theserequirements
reveal the needs of customers or users for system or software that serves a certain
purposeorsolvesacertaintechnologyproblemsuchascontrollingadevice,editingtext
or placing an order. Requirements engineering (RE) is the process of finding out,
analyzing, documenting and checking software or system’s services and constraints.
(Sommerville2010,83.)
ThegeneralrequirementofChronometerXisthatitshouldcontainsimple,butvitaltime
savingortimemonitoringapplications.Therequirementforasystemorsoftwaremaybe
categorized into two related, but distinct parts: User requirements and System
requirements.User requirements are statementswritten in natural language, including
diagramsshowingthepurposeandservicesasystemorsoftwareisexpectedtoprovide
to users and the constraints under which it must operate. (Sommerville 2010, 83.)
ChronometerXhastwoUserrequirements.TheapplicationshallcontainanAlarmutility,
Calendar utility, Stopwatch utility, Timer utility and To-do list utility and also, the
applicationshallbeabletoshowthesummaryofupcomingevents.Table1showsthelist
ofChronometerX’sUserrequirements.
10
TABLE1.ChronometerX’sUserrequirements
ChronometerX’sUserrequirements
1.TheapplicationshallcontainAlarm,Calendar,Stopwatch,TimerandTo-dolistTo-dolistutility.
2. Theapplicationshallbeabletoshowthesummaryofupcomingevents.
Systemrequirementsaredetaileddescriptionsofasoftwaresystem’sfunctions,services,
and operating restrictions. The software requirements document or functional
specification of software should define precisely the functions to be realized by the
system. Sometimes it is a part of the contract between the system developer and the
systemorsoftwarebuyer.(Sommerville2010,83.)
ChronometerX has six System requirements. These requirements are the basis for
ChronometerXsoftwarefunction.TheAlarmutilityofapplicationshallallowitsusersto
setmultiplealarmsandusersshallbeabletosetanalarmtorepeatdailyoronweekdays.
TheusershallbeabletoaddaneventtotheCalendarapplicationandcheckcurrentdate.
TheusershallbeabletomeasurerangeoftimeusingtheStopwatch.Thisparagraphonly
containsthreeofthesixChronometerX’sSystemrequirements,seetable3forthefulllist.
Table2showsthelistofChronometerX’sSystemrequirements.
TABLE2.ChronometerX’sSystemrequirements
ChronometerX’sSystemrequirements
1.TheAlarmUtilityofapplicationshallallowusertosetmultipleAlarmsandusersshallbeabletosetanAlarmtorepeatdailyoronweekdays.
2.TheusershallbeabletoaddaneventtotheCalendarapplicationandcheckcurrentdate.
3. TheusershallbeabletomeasurerangeoftimeusingtheStopwatch.
4.
TheTimershallallowusertoinputaspecifictime(hour:minute:second),thetimedecreaseuntilthetimegivenisupandthenthephonestartstoring(asoundstarttoplay).
5. TheTo-dolistshallallowuserinputtasksandeachtaskmayhavesubtasks
6. Theapplicationshallshowasummaryofupcomingevents.
11
3.2Functionalandnon-functionalrequirements
Software System requirements are mainly categorized into functional requirements or
non-functionalrequirements.Functionalrequirementsaredescriptionsoftheservicesa
software system should render. It includes what the software should do, how the
software shouldhandlecertain inputs,how the software shouldpresent itoutputsand
moreimportantlyhowthesoftwareshouldactincertainscenarios.Sometimesfunctional
requirementsmay include theproscriptionof the software system. (Sommerville 2010,
84-85.)ChronometerXSoftwarerequirementsisthesameasthefunctionalrequirement.
Graph3illustratessubdivisionsoftheFunctionalrequirements.
GRAPH3.Readersofdifferenttypesofrequirementsspecification(Pearson,2011).
A non-functional requirement outlines the limits of a software system services and
functions. This requirement focuses more on the performance characteristics like,
interoperability, maintainability, and quality. These requirements usually concern the
totalityofthesystemandnotaspecificsystemorsoftwarefunction(Sommerville2010,
84-85). ChronometerX has three Non functional Requirement. The application should
load in less than four seconds and should not crash without giving a crash report.
Applicationshouldbeaslightaspossible.Applicationshouldnotoccupymorethan10gb
ofmemory.Applicationshallbeeasytomaintain.ApplicationGUIshallbeseparatedfrom
12
controlcodesasmuchaspossible.Table3explicatestheChronometerX’sNonfunctional
requirements.
TABLE3.ChronometerX’sNonfunctionalRequirements
ChronometerX’sNonfunctionalRequirements
Requirement Explanation
1.Responsetimes
Applicationmustbehighlyresponsive,ChronometerXisamobileapplication,userexperiencereallymatters.Theapplicationshouldloadinlessthan4secondsandshouldnotcrashwithoutgivingacrashreport(feedback).
2. StorageApplicationshouldbeaslightaspossible;applicationshouldnotoccupymorethan10gbofmemory
3.Maintainability
Theapplicationshallbeeasytomaintain,GUIshallbeseparatedfromcontrolcodesasmuchaspossible.
3.3RequirementsSpecification
RequirementsspecificationistheprocessofdocumentinguserandSystemrequirements
in a requirement document. For easy system development and good communication
between systemdeveloper and stakeholders, theRequirements specification shouldbe
welldefined,explicit,comprehensive,andcoherent.Thisisdifficulttoachieveinpractice
because stakeholders translate the requirements in variousways and sometimes there
areinherentconflictsanddiscrepanciesintherequirements.(Sommerville2010,94.)
The User requirements target a system’s user. Thus, the User requirements are
descriptions of the functional and non- functional requirements in a language a user
without detailed technical knowledge can comprehend. In simpler terms, they feature
what a user expects of a system. User requirements are normally written in natural
language inconjunctionwithsimplevisualdescriptionssuchastablesandcharts.These
visualsshouldbeassimpleaspossible.(Sommerville2010,94.)
The System requirements of a software system aremore elaborate description of the
functional and non- functional requirements. It is unlike the User requirements,which
13
containonlysimpledescriptionsofwhatausershouldexpectofasystemsoftware,the
System requirements serve as the basis for the system design. Thus, they contain in-
depth descriptions of the internal and external behaviour of the system, including the
architecturaldetailstohelpthedevelopergetacomprehensivepictureofthesystemasa
whole.(Sommerville2010,94.)
3.4Softwarespecification
Software specification or requirements engineering is the procedure of understanding
anddocumentingthebreakdownofthefunctionsandservicesofasystem,includingthe
system’s operational and developmental limits and restrictions. Requirements
engineeringisapeculiarandcriticalphaseinasoftwareprocess.Asaresult,errorsatthis
point are critical andmust be firmly eschewed, because these lapsesmay disrupt the
systemdesignandimplementation.(Sommerville2010,37-38.)
The requirements engineering practice is intended to yield a concurred requirements
document that describes a system fulfilling stakeholder requirements. These
requirementsareusuallyproducedattwolevelsofdetail.End-usersandcustomersneed
a high-level statement of the requirements, while system developers need a more
detailedsystemspecification.Therearefourfundamentalexercises intherequirements
engineering procedure: Feasibility study, Requirements elicitation and analysis,
RequirementsspecificationandRequirementsvalidation.Sommerville2010,37-38.)
The feasibility study is an assessment and investigationof the capability of a proposed
software system. This evaluation is done based onwhether the perceived client needs
maybefulfilledutilizingcurrenttechnologicaltools(softwareandhardwaretechnology).
The study considers whether the proposed project will be visible from a business
perspectiveandcanberealizedwithinexistingbudgetary limitations.A feasibilitystudy
oughttobegenerallycheapandconsiderablyfast.Theresultshouldbolsterthestrategy
ofdecision-making.(Sommerville2010,37-38.)
During the course of this thesis a surveywas conducted in theAndroid Play Store and
14
AppleAPPStoreandtheresultshowsthatalthoughthere ismobileapplicationsuchas
Apple clock application and Android clock applications that contains some of the
applications (Alarm, Calendar, Stopwatch, Timer and To-do list) to be built in to
ChronometerX, but none has a screen to show the summary of events in the same
application. ChronometerX will satisfy the user’s need to see the summary of current
eventandupcomingevents.
Requirementselicitationandanalysis,alsoknownasrequirementgatheringinvolvesclose
perception of existing systems, discussing with potential users and procurers and task
analysistoderivetheproposedsystem’srequirements.Oneormoresystemmodelsand
prototypesmight be developed in the process, in order to comprehend the proposed
systembetter.Requirementgatheringmightbecarriedoutbythemeansofaninterview,
workshops, questionnaires, user observation, brainstorming and having users test
softwareprototypes.(Sommerville2010,37-38.)
Requirementsspecificationistheprocessoftranslatinganddocumentingtheinformation
collected during requirements elicitation and analysis. The requirement specification
consistsoftwokindsofrequirements:UserrequirementsandSystemrequirements.User
requirements are abstract descriptions of the functional and non- functional
requirementstosuitthecustomerandtheend-userofthesystem.Systemrequirements
are a comprehensive description of the functional and non- functional requirements.
They are translated to help the systemdeveloper. Thus, System requirements serve as
thebasisforthesystemdesign.(Sommerville2010,37-38.)
Requirementsvalidationinvolvescheckingwhetherornotthedocumentedrequirements
are realisticand fulfilpredefinedqualityandquantitycriteria.Discussingwithpertinent
stakeholders, and involving requisite sources such as laws and standards is important.
Errors in the requirements are ineluctably discovered during the phase and must be
rectified. Requirements validation should make sure the System requirements are
complete, traceable, veridical, comprehensive, consistent, up-to-date and confirmedby
the stakeholders. (Sommerville 2010, 37-38.) Graph 4 describes the Requirements
engineeringprocess.
15
GRAPH4.Therequirementsengineeringprocess(Sommerville2010).
3.5SoftwareModelling
Systemmodellingisthemethodologyofcreatingabstractmodelsofasystemandevery
model introducesadisparateperspectiveorviewpointofthatsystem.Systemmodeling
generally involves representing the system with graphical notations, which is virtually
always based on the notations in theUnifiedModelling Language (UML). (Sommerville
2010,119.)
Differentmodelsaredevelopedtorepresentthesystemfromdifferentperspectives.An
external perspective involvesmodelling the context or environment of the system. An
interactionperspective is concernedwithmodelling the interactions between a system
and its environmentor interactionsbetween the componentsof a system.A structural
perspective entailsmodelling theorganizationof a systemor the structureof thedata
that isprocessedby the system,whileabehaviouralperspective involvesmodeling the
dynamic behaviour of the system and how it responds to events. (Sommerville 2010,
119.)
16
4INTERACTIONMODELS
Allsystemsinvolveinteraction.Inasoftwaresystemcontext,theseinteractionsmightbe
user interaction,whichhas todowithuser inputsandoutputs,or interactionbetween
different components of the system and even interaction between different systems.
ModellinguserinteractionuncoversanddescribestheUserrequirements.Modellingthe
systemcomponent interactionhelps to comprehendand validate System requirements
basedonperformanceanddependability.Modellingsystem-to-systeminteractionsheds
lightonthecommunicationproblemsthatmayarisebetweentheproposedsystemand
systemitmayhavetocommunicatewith.(Sommerville2010,124.)
4.1ChronometerX’sUsecasedocumentation
This section covers the ChronometerX use case document and comprises of use case
diagrams and use case tables. The use case is a UML diagram; it is very effective for
modelling a software system. It bridges the intellectual gap between the software
system’sdeveloper,stakeholderandtheuser.Itshowsacomprehensiveillustrationofa
systemorpartofa system inonediagram.Ausecasediagram identifiesall theactors
interactingwithasystemandtheirrolesincludingexternalsystemscommunicatingwith
theproposedsystem.Ausecasetablehighlightsimportantcharacteristicsofausecaseit
shows the name of the use case, the actors interacting with the use case, use case
description, preconditions, post-conditions and use case exceptions. Use case
preconditions are conditions whichmust bemet before a use case can be firedwhile
post-condition indicateswhatwillhappenafterausecase is fired.Usecaseexceptions
arewaysausecasemayfailtocomplete.Whenausecaseexceptionoccursthebenefit
oftheusecaseisnotdeliveredtotheuser.(UMLdiagrams2015.)
AUMLusecasediagramtypicallycomprisesofanactor,subject(system)usecasesand
interaction lines (arrows). Each use case signifies a unit of useful functionality that a
subject (system)provides toactors.Anassociation (interaction lines)betweenanactor
andausecaseimpliesthattheactorandtheusecaseinteractorcommunicatewitheach
17
other. In UML use case diagrams actors are behaviour classifiers. They specify a role
played by an external entity that interacts with a system. For example, a human user
using a mobile application. In this example the human is the external entity that is
interactswiththesystem(mobileapplication).Theactorsareusuallyrepresentedwitha
stickman inUMLusecasediagrams.Usecasesarepresented in the formofanellipse
enclosing the use case’s name and the subject is represented by a rectangle, which
engulfstheusecases.(UMLdiagrams2015.)
GRAPH 5 is a use case diagram. It shows an interaction between the user and
ChronometerX’sMainscreenanditsfundamentalActivities.TheStartAlarm,StartTo-do
list, Start Timer, Start Calendar and Start Stopwatch. The tables describe each of the
fundamentalactivitiesindetails.Table4explainstheGetAppsummaryusecase
The table consists of 6 rows. The first row contains the use case name (Get App
summary). The second row shows the actor (application user) interactingwith theGet
AppsummaryUsecase.Row3featurestheGetAppsummaryusecaseprecondition.To
firetheGetAppsummaryusecase,ausermusthaveChronometerX installedonhisor
herAndroidphone.Row4containsabriefdescriptionoftheGetAppsummaryusecase.
To fire theGetApp summaryuse caseauser clickson theChronometerX’s application
Icon either from the Android system environment or from ChronometerX’s application
environment.Row5holdstheGetAppsummaryusecasePost-condition.WhentheGet
App Summary use case is fired, the summary of upcoming events is shown. Row 6
highlightstheusecaseexception.ItindicatesthattheGetAppsummaryusecasehasno
exception.Tables5,6,7,8and9givedetailsofStartAlarmusecase,StartTo-dolistuse
case, Start Timer use case, Start Calendar use case and Start Stopwatch use case
respectively.
18
GRAPH5.ChronometerXfundamentalActivitiesUsecasediagram.
TABLE4.GetAppSummaryUsecase.
NameoftheUsecase:GetAppSummary
Actors:User
Preconditions
ChronometerXmustbeinstalledonanAndroiddevicesandmustbeopen.
DescriptionoftheUsecase
User clicks on the ChronometerX’s application Icon either from the Android system
environmentorfromtheChronometerX’sapplicationenvironment.
Post-conditions
Summaryofupcomingeventsisshown.
Exceptionsdescriptions
None.
19
TABLE5.StartAlarmUsecase.
NameoftheUsecase:StartAlarm
Actors:Users
Preconditions
ChronometerXmustbeopen.
DescriptionoftheUsecase
UserclicksontheAlarmactionIconontheGetAppSummaryscreen.
Post-conditions
AlarmApplicationisopen.
Exceptionsdescriptions
None.
TABLE6.StartTo-doListUsecase.
NameoftheUsecase:StartTo-dolist
Actors:Users
Preconditions
ChronometerXmustbeopen
DescriptionoftheUsecase
UserclicksontheTo-dolistActionIconontheGetAppSummaryscreen.
Post-conditions
To-dolistapplicationisopen.
Exceptionsdescriptions
None.
20
TABLE7.StartTimerUsecase.
NameoftheUsecase:StartTimer
Actors:Users
Preconditions
ChronometerXmustbeopen
DescriptionoftheUsecase
UserclicksontheTimerActionIconontheGetAppSummaryscreen.
Post-conditions
TimerApplicationisopen.
Exceptionsdescriptions
None.
TABLE8.StartCalendarUsecase.
NameoftheUsecase:StartCalendar
Actors:Users
Preconditions
ChronometerXmustbeopen
DescriptionoftheUsecase
UserclicksontheCalendarActionIconontheGetAppSummaryscreen.
Post-conditions
CalendarApplicationisopen.
Exceptionsdescriptions
None.
21
TABLE9.StartStopwatchUsecase.
NameoftheUsecase:StartStopwatch
Actors:Users
Preconditions
ChronometerXmustbeopen
DescriptionoftheUsecase
UserclicksontheStopwatchActionIconontheGetAppSummaryscreen.
Post-conditions
StopwatchApplicationisopen.
Exceptionsdescriptions
None.
4.2TimerUsecasedocumentation
The Timer use case documentation in Graph 6 describes the ChronometerX’s Timer
application. Graph 6 shows a pictorial illustration of the ChronometerX’s Timer
application.Itfeaturesactorsandusecases,andalsoshowstherelationshipbetweenthe
actors and theUse cases. Tables 7, 8, 9, 10, 11, 12 and13describe eachof the Timer
applicationusecasesindetails.Table7explainsthePickTimeusecaseandTables8,9,
10, 11, 12 and 13 give details of use cases: StartTimerCountdown, PauseTimer,
ResetTimer,PickedTimeUp,PlaySoundandPhoneVibraterespectively.
22
GRAPH6.ChronometerXTimerUsecasediagram
TheTimerusecasefeaturessevenusecasesandthreeactors.Actoroneistheapplication
user who interacts with four of the seven use cases: Pick Time, StartTimerCoundown,
Pause Timer andCancel Timer. These four use cases represent onscreenobjectswhich
the use interactwithwhist using the Timer utility. The Pick Timeuse case enables the
user to setTimer’s time; theStartTimercoundownenables theuser to start theTimer.
TheuserpausestheTimerbyfiringthePauseTimerusecaseandtheTimeriscancelled
whenCancleTimerusecaseisfired.
Thefourusecasestheapplicationuserisinteractingwithareallfrontendusecases.That
is, the user interacts with them directly. The last three use cases: PickedTimeUp,
PlaySound and Phone Vibrate are back end use cases. These use cases operate in the
background. The actors Counter and AndroidAlarmManager are the actors interacting
with thebackenduse cases.After auser starts a Timer and theTimer’s countdown is
done,theCounterfiresthePickedTimeupusecaseandtheusecasesendsamessageto
theAndroidAlarmManager.TheAndroidAlarmManagerinturnfirestheplaysoundand
phonevibrateusecase.Theplaysoundusecaseandphonevibrateusecaseareintended
toplaysoundandvibratethephonerespectively.
23
TABLE10.PickTimeUsecase.
NameoftheUsecase:PickTime
Actors:Users
Preconditions
TheTimerapplicationmustbeopen.
DescriptionoftheUsecase
TheusersetsthetimeontheTimerpicker.
Post-conditions
Theuserhaspickedatime.
Exceptionsdescriptions
None.
TABLE11.StartTimerCountdownUsecase.
NameoftheUsecase:StartTimerCountdown
Actors:Users
Preconditions
TheTimerapplicationmustbeopenanduserhaspickedatime.
DescriptionoftheUsecase
Userclicksonthestartbuttontostart theTimerandthepickerdisappearandaText
viewisshowncountingdownfromthechosentime.
Post-conditions
TheTimerstartstocountdownfromthepickedtime.
Exceptionsdescriptions
None.
24
TABLE12.PauseTimerUsecase.
NameoftheUsecase:PauseTimer
Actors:Users
Preconditions
TheTimerapplicationmustbeopenandtheTimermuststillbecountingdown.
DescriptionoftheUsecase
UserclicksonthepausebuttontopauseTimercountdown.
Post-conditions
Timercountdownispaused.
Exceptionsdescriptions
None.
TABLE13.ResetTimerUsecase.
NameoftheUsecase:ResetTimer
Actors:Users
Preconditions
TheTimerapplicationmustbeopen,andtheTimermuststillbecountingorpaused
DescriptionoftheUsecase
UserclicksontheResetbuttontoresetTimer
Post-conditions
Timepickerisshown.
Exceptionsdescriptions
None.
25
TABLE14.PickedTimeUpUsecase.
NameoftheUsecase:PickedTimeUp
Actors:Counter
Preconditions
TheTimerapplicationmustbeopen,andcountdownmustbeup(haveended).
DescriptionoftheUsecase
When the countdown is up the count fires the PickedTimeUp to notify the
AndroidAlarmmanager.
Post-conditions
TheAndroidAlarmmanagerhasreceivedthePickedTimeUpnotification.
Exceptionsdescriptions
None.
TABLE15.PlaySoundUsecase.
NameoftheUsecase:PlaySound
Actors:AndroidAlarmManager
Preconditions
TheTimerapplicationmustbeopen,countdownmustbeup,andthecounterhassent
notification.
DescriptionoftheUsecase
When theAndroidAlarmmanager received thenotification it fires thePlaySounduse
case.
Post-conditions
Phoneisringing.
Exceptionsdescriptions
None.
26
TABLE16.PhoneVibrateUsecase.
NameoftheUsecase:PhoneVibrate
Actors:Users
Preconditions
TheTimerapplicationmustbeopen,countdownmustbeup,andthecounterhassent
notificationtotheAndroidAlarmmanager.
DescriptionoftheUsecase
When the AndroidAlarmmanager received the notification it fires the PhoneVibrate
Usecase.
Post-conditions
PhoneVibrates.
Exceptionsdescriptions
None.
4.3To-dolistUsecasedocumentation
This section consists of the breakdown and the documentation of the functions of the
ChronometerX’sTo-do listapplication.Graph7describes theChronometerX’sTo-do list
application,and the tablesgivedetailedexplanationsofeachusecase in theTo-do list
application use case diagram. Tables 17, 18, 19, 20, and 21 give details of use cases:
StartTodo,AddTask,AddSubTask,FinishTaskandCheckSubTaskrespectively.
TheTo-dolistusecasediagramincludesanActorandfiveusecases.TheActorinthisuse
case diagram is ChronometerX’s user. The StartTodo use case opens the To-do list
applicationwhenfired.Theuseraddsataskandtask’ssubtasktotheTo-dolistbyfiring
theAddTaskusecaseandtheAddsubtaskusecaserespectively.Whentheuseisdone
withasubtaskhe/shewillfirethechecksubtaskusecaseandoncethemaintaskisdone
theuserfirestheFinishtaskusecasetoindicatetotheapplicationthatthetaskisdone.
27
GRAPH7.ChronometerXTo-doListUsecasediagram.
TABLE17.StartTodoUsecase.
NameoftheUsecase:StartTodo
Actors:Users.
Preconditions
ChronometerXmustbeopen.
DescriptionoftheUsecase
UserclicksontheTo-dolistActionIconinLaunchActivity.
Post-conditions
To-dolistApplicationisopen.
Exceptionsdescriptions
None.
28
TABLE18.AddTaskUsecase.
NameoftheUsecase:AddTask
Actors:Users
Preconditions
To-dolistApplicationmustbeopen,thenameofthetaskmustbeentered
DescriptionoftheUsecase
UserclicksontheAddTaskbutton
Post-conditions
Thetaskisaddedanddisplayed.
Exceptionsdescriptions
None.
TABLE19.AddSubTaskUsecase.
NameoftheUsecase:AddSubTask
Actors:Users
Preconditions
To-do list Applicationmust be open, the usermust have added a Task and the
nameofthesub-taskmustbeentered.
DescriptionoftheUsecase
UserclicksontheAddsubTaskbuttontoaddasub-tasktoaTask
Post-conditions
Thesubtaskisaddedtothetask.
Exceptionsdescriptions
None.
29
TABLE20.FinishTaskUsecase.
NameoftheUsecase:FinishTask
Actors:Users
Preconditions
To-dolistApplicationmustbeopenanduserclickstheFinishTaskbuttontofinish
agiventask.
DescriptionoftheUsecase
ThisUsecaseisusedtofinishagiventaskanddeleteitfromthephonememory.
Post-conditions
Finishedtaskhasbeendeletedfrommemory.
Exceptionsdescriptions
None.
TABLE21.CheckSubtaskUsecase.
NameoftheUsecase:CheckSubtask
Actors:Users
Preconditions
Asub-taskhasbeenadded.
DescriptionoftheUsecase
Userclicksonthesub-taskcheckboxtocheckthesub-task
Post-conditions
Sub-taskcheckboxischecked.
Exceptionsdescriptions
None.
30
4.4CalendarUsecasedocumentation
The Calendar use case documentation below describes the ChronometerX’s Calendar
ApplicationbasedonRequirementgatheredduringRequirementgatheringandanalysis
phaseoftheChronometerX’sApplicationlifecycle.Graph6showsagraphicillustrationof
theChronometerX’sCalendarapplication.itfeaturesanactorandtwousecases,andalso
shows the relationship between the actors and the use cases. Table 22 and table 23
includedetaileddescriptionsoftheCalendarapplication’susecase.Table22andtable23
explain the CheckTodayDate use case and the AddEvent use case respectively. The
application user is the actor interactingwith the Calendar use case. The user fires the
CheckTodayDateusecasetocheckthecurrentdateandaddsaneventtotheCalendarby
firingtheAddEventusecase.
GRAPH8.ChronometerXAlarmUsecasediagram
31
TABLE22.CheckTodayDateUsecase.
NameoftheUsecase:CheckTodayDate
Actors:Users
Preconditions
CalendarApplicationisopened.
DescriptionoftheUsecase
Thisusecaseisusetoshowthecurrentdate.
Post-conditions
Thecurrentdateisshown.
Exceptionsdescriptions
None.
TABLE23.AddEventUsecase.
NameoftheUsecase:AddEvent
Actors:Users
Preconditions
CalendarApplicationisopened,thenameandlocationoftheeventisgiven.
DescriptionoftheUsecase
Theuserclicksonthesub-taskcheckboxtocheckthesub-task
Post-conditions
TheeventisaddedtotheCalendar.
Exceptionsdescriptions
None.
32
4.5AlarmUsecasedocumentation
This segmentdocumentsandexplainsChronometerX’sAlarmapplication requirements.
Graph9describestheChronometerX’sAlarmapplication,andTables24,25,26,27,28,
29,30,and31givedetailedexplanationsofeachusecase in theAlarmapplicationuse
casediagram.Tables24,25,26,27,28,29,30,and31explain the followingusecases:
AddAlarm,SetAlarm,SaveAlarm,DeleteAlarm,DismissAlarm,AlarmTime,PlayToneand
PhoneVibraterespectively.
Graph9consistsoftwoactorsand8usecases.Theactoronthelefthandsideoftheuse
caseistheapplicationuser,theapplicationuserinteractsdirectlywith5usecases:Add
Alarm, SetAlarm, SaveAlarm,DeleteAlarm,DismissAlarm,AlarmTime. Theuser fires the
AddAlarmusecasetoaddanAlarm.TheusersetstheAlarmdetailsbyfiringtheSetAlarm
usecase.AftertheuserhaveenteredtheAlarmdetailsheorshecansavetheAlarmby
firing the SaveAlarmuse case. AnAlarm is deleted by firing theDeleteAlarmuse case.
WhenanAlarmringstheusercandismisstheAlarmbyfiringtheDismissAlarmusecase.
The second actor and the actor on the right hand side of graph 9 is theAndroidAlarm
Manager.TheAndroidAlarmManagerisresponsibleforfiringthePlaytoneusecaseand
PhoneVibrate use case used by ChronometerX to play a tone and vibrate the phone.
When an Alarm time is reached AlarmTime (the counter) notifies the AndroidAlarm
Manager, then the AndroidAlarm Manager fires the Playtone and PhoneVibrate use
cases.
33
GRAPH9.ChronometerXAlarmUsecasediagram.
TABLE24.AddAlarmUsecase.
NameoftheUsecase:AddAlarm
Actors:Users
Preconditions
AlarmApplicationisopened.
DescriptionoftheUsecase
UserclicksontheAddAlarmactionbuttontoaddanAlarm
Post-conditions
ThesetAlarmscreenopensandtheuserisabletosetAlarmvalues.
Exceptionsdescriptions
None.
34
TABLE25.SetAlarmUsecase.
NameoftheUsecase:SetAlarm
Actors:Users
Preconditions
AlarmApplicationisopen,theuserhasfiredtheAddAlarmUsecase.
DescriptionoftheUsecase
ThisenablestheusertosetAlarmvalueslikeAlarmtimeandAlarmname.
Post-conditions
TheAlarmisreadytobesaved.
Exceptionsdescriptions
None.
TABLE26.SaveAlarmUsecase.
NameoftheUsecase:SaveAlarm
Actors:Users
Preconditions
Alarm Application is opened; user has fired the AddAlarm Use case, and use has
setAlarmvalues.
DescriptionoftheUsecase
ThisenablestheusertosaveAlarminformationtothedatabase.
Post-conditions
TheAlarmissavedtothedatabase,andAlarmisshownintheAlarmapplicationmain
screen.
Exceptionsdescriptions
None.
35
TABLE27.DeleteAlarmUsecase.
NameoftheUsecase:DeleteAlarm
Actors:Users
Preconditions
AlarmApplicationisopened,thereisanAlarmtobedeletedintheAlarmmainscreen.
DescriptionoftheUsecase
ThisenablesusertodeleteagivenAlarm.
Post-conditions
TheAlarmisdeletedfromthedatabaseandthemainscreen.
Exceptionsdescriptions
None.
TABLE28.AlarmTimeUsecase.
NameoftheUsecase:AlarmTime
Actors:Users
Preconditions
AlarmhasbeenAdded.
DescriptionoftheUsecase
ThisusecasealertstheAndroidAlarmmanagerwhentheAlarmtimeisreached.
Post-conditions
TheAndroidAlarmmangerisawarethattheAlarmtimehasbeenreached.
Exceptionsdescriptions
None.
36
TABLE29.PlayToneUsecase.
NameoftheUsecase:PlayTone
Actors:AndroidAlarmManager
Preconditions
AlarmTimeisreached.
DescriptionoftheUsecase
AtoneisplayedwhenthisUsecaseisfired
Post-conditions
TimerApplicationisopen.
Exceptionsdescriptions
None.
TABLE30.PhoneVibrateUsecase.
NameoftheUsecase:PhoneVibrate
Actors:AndroidAlarmmanager
Preconditions
AlarmTimeisreached.
DescriptionoftheUsecase
WhentheAlarmtimeisreachedtheAndroidAlarmmanagerfiresthePhoneVibrateUse
case.
Post-conditions
Thephonevibrates.
Exceptionsdescriptions
None.
37
TABLE31.DismissAlarmUsecase.
NameoftheUsecase:DismissAlarm
Actors:Users
Preconditions
AlarmTimeisreached,PlayToneorPhoneVibrateisfired.
DescriptionoftheUsecase
ThishelpstodismissAlarmtemporarily.I.e.Stopplayingtoneandstopthephonefrom
vibrating.
Post-conditions
TheAlarmisdismissedtemporarily.I.e.phonestopplayingandphonestopvibrating.
Exceptionsdescriptions
None.
38
5.DESIGNANDIMPLEMENTATION
Thesoftwaredesignandimplementationstageisthephaseinthelifecycleofasoftware
systemwheretheproposedfunctionalsoftwaresystemisdeveloped.Forsimplesystems,
software design and implementation is synonymous to software engineering. All other
activitiesaremergedwith the softwaredesignand implementation.However, for large
systems, software design and implementation is only one part of the process
(requirementsengineering,verificationandvalidation)involvedinsoftwareengineering.
(Sommerville2010,174.)
Softwaredesignandimplementationactivitiesarealwaysinterwoven.Softwaredesignis
an innovative activity by which software service or components are identified and
conceptualized including their relationships and connections based on a stakeholder’s
requirements. Implementation is a systematic and structural approach to transforming
thedesigning concept into aworking program (Sommerville 2010, 174). ChronometerX
contains6basicactivities.Thefirstactivity(summaryscreen)isusedtoshowasummary
of the other activities. It also includes Action buttons used to launch the other five
activities. The summary of the Calendaractivity, To-do list activity, Stopwatch activity,
TimeractivityandtheAlarmactivityisshownonthesummaryscreen.Table32explains
the6basicactivitiescontainedinChronometerX.
39
Table32.ChronometerX’s6BasicActivities.
ChronometerX6BasicActivities
Activity Explanation
1.Mainactivity
ThemainactivityorsummaryscreenistheFirstscreentheuserseeswhentheapplicationislaunched.Itcontainstheactionicon(button)tostarttheotherapplication.Italsoshowsthecurrentdateandtime.
2. Calendar
TheCalendarapplicationislaunchedusingtheCalendaractionbuttoninthemainactivity.Itisasimple,butusefulapplicationthatshowstheCalendarmonths,allowsusertoaddaneventtotheCalendarbyclickingonthe“addevent”actionbuttonandalsohighlightscurrentdatewhentheuserclicksthetodayactionbutton.
3. To-do-List
Theto-doactivityisthemostcomplexofalltheutilities.ItconsistsofandcustomExpandablelistviewwhichdisplaysto-dotasks,anactionbuttontoaddatask.
4. Stopwatch
Thisisaone-activityapplicationthatcountsupwardfromzero.Therearethreebuttonsintheapplication.Startbuttonthatstartsthecounting,theStopbuttonthatstopsthecountingandtheResetbuttonthatresetsthevaluesofthecounterandachronometerviewthatdisplaysthecount.
5. TimerTheTimeractivityletsausersetatime,countsdownfromthegiventimeinsecondsandthenplaysasoundwhenthetimeelapses.
6. AlarmTheAlarmapplicationisasimpleapplication,whichallowstheusertosetmultipleAlarms.
5.1Mainactivityorsummaryscreen
TheMainActivityisChronometerX’slaunchActivity.Itshowsthesummariesofupcoming
events. For example, the next Alarm and the next Calendar event. The Main Activity
consists of five action buttons that is used to launch the applications within
ChronometerX.TheMainActivityislaunchedwhentheapplicationisopened,becauseit
isdesignatedas the launchactivity in theapplicationmanifest file, it isalso theparent
activityoftheotherfiveactivities.ThismakesnavigationeasybetweentheMainActivity
and theother fiveactivities.Thecode inGraph10belowshows thedesignationof the
MainActivityasthelauncheractivityintheapplicationmanifestfile.
40
GRAPH10.TheMainActivityPortionoftheChronometerX’sManifestfile.
The five applications within the ChronometerX are launched using application intent.
WhentheuserclickstheactionbuttonassignedtotheapplicationintheMainActivitythe
applicationopens.Graph11showstheswitchcase(Javasourcecode)usedtoopeneach
of the applications. Graph 12 shows the relationship between ChronometerX’s Main
Activity and the main screen of the five utilities contained in ChronometerX. This
relationshipisestablishedbyapointinganarrowfromautility’slaunchActionbuttonto
theutility’smainscreen.Forexample,anarrowpointsfromtheAlarmActionbuttonto
theAlarmmainscreen.
Graph11.Sourcecode(Switchcase)usedtoopeneachoftheapplicationsin
ChronometerX.
41
GRAPH12.ViewsofChronometerXfundamentalActivities.
42
5.2Calendar
TheCalendarApplicationconsistsoftwoactivities.ThefirstactivityshowstheCalendar
month, and features two Action buttons and the Application icon. The Today action
buttonshowthecurrentdate,whiletheAddCalendarEventbutton launchesthesecond
activityasshowninGraph13below.TheSecondactivityisusedtocollecttheinformation
ofaneventtobeaddedtotheCalendarapplication.Graph13demonstrateshowtoadd
an event to the Calendar Application. First, the user clicks on the AddCalendarEvent
buttontolaunchtheCalendarDetailsactivity,theuserfillstheeventdetailsandsavesit
byclickingontheAddeventbuttonasshownintheGraph13.
GRAPH13.CalendarApplication.
43
5.3Alarm
TheAlarmApplicationconsistsofthreeactivities.Thefirstactivityshowsthesummaryof
available Alarm(s), and features an Action button to add Alarm.When the Add Alarm
actionbutton is clicked, the secondactivity is launched. The secondactivity consistsof
AndroidviewsusedtocollectalarminformationandaddaringtonetotheAlarm.After
the user has set the Alarm information the user has to click on the saveAlarm action
buttonintheActivitytosavetheAlarmtothedatabase.
Graph 14 shows the process involved in setting up an alarm in Chronometer Alarm
application.TheuserclicksontheAddAlarmbuttonatthetoprightcornerofthescreen.
Aftertheclick,theuserispresentedwiththealarmdetailscreentosetthealarmdetails
andAlarmringtone.TheusersavestheAlarmbyclickingonthesaveActionbuttonatthe
toprightcornerofthescreen.Then,theAlarmwillappearintheAlarmapplicationmain
screen as seen in Graph 14. Graph 15showsthe alarm ringing. The activity shown in
Graph15appearswhenthealarmstartstoring. Itcontainsthealarmname,alarmtime
andabuttontodismissthealarm.
44
GRAPH14.SettingupAlarmwiththeChronometerXAlarmApplication.
GRAPH15.AlarmRinging.
45
5.4To-dolist
TheTo-dolistapplicationconsistsoftwoactivities.Thefirstactivitydisplaysthesummary
oftheTo-dolist.TheactivityhasanAddTaskactionbuttonusetoaddtaskstotheTo-do
list application. When the user clicks the AddTask action button the second activity
launches.ThisiswheretheuserinputstheTo-dotaskinformation.Theusercanalsoadd
sub-taskstoaparticulartask.Graph16showstheprocessofaddingataskandsub-tasks
totheTo-do listapplication.ToaddatasktotheTo-do listapplication,theusersimply
clicksontheAddTaskbuttonattheupperrightcornerofthescreen.Aftertheuserhad
clicked thebutton,he/she ispresentedwitha screen toadda taskandsubtasks.After
Adding the taskand subtasks, theuser clickson theDonebutton to save thedataand
thenthetaskanditsubtasksareshownintheTo-dolistapplicationmainscreenasseen
inGraph16.
GRAPH16.TheTo-doListApplication.
46
5.5Stopwatch
TheChronometerStopwatchhasasingleactivitywithfeaturesastartbuttontostartthe
Stopwatch,stopbuttontostoptheStopwatch,aresetbuttontoresettheStopwatchand
anAndroidchronometerviewtodisplaythecount.TheGraph17demonstratestheuseof
the ChronometerX Stopwatch application. Theuserstarts the Stopwatch by clicking on
theStartbutton.AftertheuserhastriggeredtheStopwatch,heorshecanpauseofreset
theStopwatchusingthePausebuttonorResetbuttonrespectivelyasshowninGraph17.
GRAPH17.StopwatchApplication.
47
5.6Timer
The Chronometer Timer has a single activity with features a start button to start the
Timer,pausebuttontopausetheTimer,aresetbuttontoresettheTimer,threenumber
pickersusedtosettheTimer’shours,minutesandsecondsrespectivelyandlastlyatext
view todisplay the countdown.Graph18below is a pictorial illustration that explains
how touseChronometerX Timer application. First theuser sets thedesired timeusing
theonscreentimepickersandstartsthecountdownbyclickingontheStartbutton.After
the countdown hasbegun, the user may pause or reset the Timer using the
pausebuttonortheresetbuttonrespectively.
GRAPH18.ChronometerXTimerApplication.
48
6TESTING
AndroidMobileApplicationtestingexercise involves testingagivenAndroidapplication
for it functionality, usability and consistency. However, there are critical factors to
considerwhentestinganAndroidapplication.TheAndroidapplicationdeveloperhasto
dealwithproblemsthatarisewithmultiplicityofscreensizes,operatingsystemversions,
device variation,mobile testing tool Availability, core hardware inAndroid devices and
also sensor fragmentation. This thesis has taken into account only two factors: device
variation and mobile testing tool Availability. (Android Open Source Project 2015;
Chauhan&Kumaretal.2013.)
6.1DeviceVariationandMobileTestingToolAvailability
Android powers hundreds of mobile device types with several different screen sizes.
Therefore,itisimportanttodesignandtestanapplicationsothatitiscompatiblewithall
screensizessoastobeavailabletoasmanyusersaspossible.Applicationcompatibility
withdifferentscreensandscreensizesisnotenough.Eachscreensizepresentsdifferent
possibilitiesandchallengesforuserinteraction.Inordertotrulysatisfyandimpressusers,
thisprojectmustgobeyondmerelysupportingmultiplescreensandscreensizes.Itmust
optimizetheuserexperienceforeachscreenconfiguration.(AndroidOpenSourceProject
2015b.)
By default, theAndroid system automatically scales and resizes anAndroid application
graphicaluser interface (GUI) tomaketheapplicationworkonavarietyofscreensand
screen sizes. (Android Open Source Project 2015b). The Android default scaling and
resizing is not enough to optimize ChronometerX’s user experience, and convince
ChronometerX users that ChronometerX was actually designed for their devices. To
achieve an optimized user experience, this project carefully considered screen size,
screen density, screen orientation, resolution and platform versionswhile building and
testingChronometerX.
49
Screensizeisthetermusedtodescribetheactualphysicaldimensionsofaphonedisplay
screen,measured fromcorner to corner.Android (2015b) categorizesall phonedisplay
screens into four fundamental sizes: small, normal, large, and extra large. The
ChronometerXisonlyoptimizedforsmallandnormal,butitalsoworksonlargescreens.
Graph17showsthephysicaldimensionsofatypicalAndroiddevice.
GRAPH19.APictureofAndroiddevicescreensizeshowingitscreendimensions
(Localytics2012.)
Screendensity isdefined in termsofPixels.Webopedia (2015)definespixels (Short for
picture element) as a single point in a graphic image. Android (2015b) defines screen
densityasthenumberofpixelswithinthephysicalareaofthescreen,popularlyknownas
dpi(dotsperinch).Android(2015b)groupedscreendensitiesintosixdensitycategories:
low (ldpi, ~120dpi), medium (mdpi, ~160dpi), high (hdpi, ~240dpi), extra-high (xxhdpi,
~320dpi),extra-extra-high(xxhdpi,~480dpi),andextra-extra-extra-high(xxxhdpi,~640d).
(AndroidOpenSourceProject2015b.)
Low-density screensare screenswith lesspixelswithin thephysical areaof the screen,
while“high”densityscreencontainsmorepixelswithinagivenphysicalarea,compared
50
to"low"and"normal"respectively.Extra-extra-highhasthemostnumberpixelswithina
givenphysicalarea. Inorder tomaximizeuserexperience, layout sizesandpositionsof
ChronometerXwas expressed in density-independent pixels. This project also provided
imagesoffivedifferentdensities:low,high,extra-high,extra-extra-high,andextra-extra-
extra-high.(AndroidOpenSourceProject2015b.)
The term screen orientation has everything to dowith the user’s perspective. It is the
position atwhich the user is using an Android device either straight (portrait) or slant
(landscape). As a result, the screen's viewpoint proportion is either tall or wide,
respectively. This project considered the fact that anAndroid devicemay run in either
landscapeorportraitorientationbydefault.Thisorientationmightchangefromportrait
tolandscapeofviceversa,iftheuserrotatesthedevice.Thisrotationmayresultinlossof
unsaved data. To avoid such contingency this project has configured some of
ChronometerX’s activities to work only in portrait orientation. (Android Open Source
Project2015b.)
Themainactivity,theCalendaractivity,theTimeractivityandtheStopwatchactivityonly
work in portrait orientation to optimize user experience, while the rest of
ChronometerX’s activities can run in landscapeorportrait orientation.Graph20 shows
ChronometerX’ssummaryscreenontwoAndroidemulatorsandtworealdevices.Graph
21 shows the To-do Activity in landscape mode. Graphs20 and 21 show the result of
testingChronometerXacrossdifferentscreensizeandorientation.Themaingoalofthe
Graphs20and21istogiveareaderaglimpseofwhatChronometerXlookslikeonreal
andvirtualdevicesandtoshowthattheapplicationworksasdesiredondifferentscreen
sizesandscreenorientations.
51
GRAPH 20. The ChronometerX Summary screen on two emulators and on two real
devices.GoogleNexus6,SamsungS5,GalaxyTrendandOnePlusrespectively.
52
GRAPH21.TheChronometerXTo-dolistscreenonthreedifferentscreensinLandscape
orientation.
Screenresolutionistheaggregateoftheamountofphysicalpixelsacrosstheentirewidth
and height of a device’s screen. Android applications do notwork directlywith screen
resolution. Thus, the generalized size and density groups advise Android developers to
focusonlyon screen sizeanddensitywhenadding support formultiple screens.When
definingGUIlayers,adevelopershouldexpresslayoutdimensionsorpositionintermsof
a virtualpixelunit calledDensity-independentpixel (dp). (AndroidOpenSourceProject
2015b.)
The density-independent pixel is the standard implied by the Android system for a
“medium-density”screen.Itisequaltoaphysicalpixelona160dpiscreen.Duringdevice
operation,thesystemautomaticallyscalesanyDensity-independentpixelunitsbasedon
thedensityofthescreenbeingused.ThemathematicalformulaforconvertingDPunits
53
toscreenpixelsisexpressedas:px=dp*(dpi/160).Thusascreenof240dpiand1dpis
equivalent to 1.5 physical pixels. While defining the ChronometerX’s GUI, this project
utilized dp units to guarantee efficient display of graphics on screens of different
densities.(AndroidOpenSourceProject2015b.)
PlatformversionsreferstotheversionofoperatingsystemanAndroiddeviceisrunning.
Consequently,thisthesissetstheminimumSDK(softwaredevelopmentkit)versionto17
andthetargetSDKversionto21inordertomaximizeuserexperience,andserveasmany
users as possible. This thesis tested ChronometerX on different screen sizes and
orientationsusingemulatorandrealAndroiddevices.TheChronometerXtestresultsare
asdesignedandasdesired.
54
7DEPLOYMENT
After rigorous testing, troubleshooting and fixing bugs, the application is ready to be
releasedtotheusers.Thereleaseprocess is theprocessofpreparingandpackagingan
applicationforpublication.ThereleaseprocessincludespreparinganAndroidapplication
for release. Itencompassesconfiguring theapplication,building theapplication, testing
the application in releasemodeand releasing the application to theusers. The release
processmayalsoincludeadvertising,sellinganddistributingtheapplication.Therelease
processisillustratedinGraph22.
Thefinalbuild isexpectedtobedeliveredtousers iscalledthereleasecandidatebuild.
The release candidate build must be thoroughly tested before publishing. After the
release candidate build is tested and verified, it becomes the release build that is the
officialbuildtobepublished.ChronometerXisfunctionallycomplete,butIneedtotake
one final step before publishing it. I must package the application so that it can be
deployedtousers.(Darcey&Conder2011,383-385.)
GRAPH22.Preparingforreleaseisarequireddevelopmentaltaskandisthefirststepin
thepublishingprocess(AndroidOpenSourceProject2015a.)
55
7.1PreparingtheReleaseCandidateBuild
While preparing the release candidate build, it is important to resolve any open or
outstandingproblemsorissueswiththeapplicationthatmayhindertherelease.First,all
application features need to implement and test. Secondly, the application is
troubleshooted and all bugs should be fixed. Finally, the programmer should delete all
unnecessary diagnostic code from the application, which could affect application
performance and verify that the application configuration settings in the Android
manifestfileareappropriateforrelease.(AndroidOpenSourceProject2015a.)
Toprepareanapplication for release, fivemaintasksshouldbeperformed(seeGRAPH
23).Eachmaintaskmayincludeoneorsmallertasks.Forexample,ifanapplicationisto
bereleasedthroughGooglePlayspecialfilteringrulesshouldbeaddedtotheapplication
manifest while configuring the application for release. Similarly, to meet Google Play
publishingguidelines,screenshotsandpromotionaltextshouldbemadewhilegathering
materialsforrelease.(AndroidOpenSourceProject2015a.)
GRAPH23.Youperformfivemaintaskstoprepareyourapplicationforrelease(Android
OpenSourceProject2015a).
56
7.1.1GatheringMaterialsandResources
Numerous supporting items are needed whist preparing an Android application for
release. Theofficial Androidwebsite encourages developers to acquire a cryptographic
key for signing the application and an application icon. Including an end-user license
agreementmightbeofgreatadvantagetoo.Thenexttwoparagraphsfurtherexplainthe
supportingitemsneededwhilepreparinganAndroidapplicationforreleaseasdescribed
onAndroidofficialwebsite.
Every application must be digitally signed with a certificate that is owned by the
application’sdeveloperbefore it canbe installedonanAndroid system.Thedeveloper
holds the private key to the certificate. The key referred to in this paragraph is a
cryptographic key. The Android system makes use of the certificate as a means of
identifyingtheauthorofanapplicationinordertoestablishtrustrelationshipsbetween
Androidapplications.Adevelopermaysignanapplicationusingthetoolprovidedinthe
AndroidSDK.
Acryptographickeyisaprivatepieceofinformationorparameter,usuallyastringofbits
usedbyacryptographicalgorithmtodetermineafunctionaloutputwhengivenaninput.
Without this key, the algorithm resultwill be garbage. It is typically used to transform
plaintestintothecipherandviceversa.Thesecertificatesdonotneedtheinterventionof
anycertificateauthority.TheAndroidsystemallowsdeveloperstosigntheirapplications
withaself-signedcertificate.(AndroidOpenSourceProject2015a.)
An application icon is a graphic that occupy a small portionof the screen to provide a
quick, intuitiverepresentationofanaction,astatus,oranAndroidapp.Theapplication
Icon must follow recommended icon guidelines. An application may be installed on a
varietyofdevicesthatofferarangeofpixeldensities.Tomakeanapplicationiconslook
great on all devices a developermust providedmultiple sizes of the application icons.
Graph24showstheapplicationicondimensionsinDPunits.
57
GRAPH24.RecommendedAndroidapplicationIcondimensionsindpunits(AndroidOpen
SourceProject2015a).
Application'siconhelpsusersidentifyanapplicationonadevice'sHomescreenandinthe
Launcherwindow.ItalsoappearsinManageApplications,MyDownloads,andelsewhere.
Inaddition,publishingservicessuchasGooglePlaydisplayapplicationicontousers.Thus
adevelopershouldbemindfuloftheirapplicationiconandmakesureitisinaccordance
with theAndroid recommended iconspecifications.Topublishanapplication inGoogle
Play,adeveloperwillneedtocreateahigh-resolutionversionoftheapplicationicon.The
explanationgiveninthisreport is limited.FormoredetailsonAndroidapplicationicons
and graphics see “Graphic Assets for your Application” on Android official website.
(AndroidOpenSourceProject2015a.)
7.1.2ConfiguringYourApplicationforRelease
Thenextthingtodoaftergatheringallsupportingmaterialistoconfigureanapplication
for release. This section provides a summary of the configuration changes Android
(2015a) recommends that developers make to their source code, resource files, and
applicationmanifestbeforereleasingtheirapplication.
58
Thefirstandoneofthemostimportantstepinvolvedwhileconfiguringanapplicationfor
releaseistochooseagoodpackagename.TheAndroidapplicationpackagenamecannot
bechangedonceithasbeenpublished,soitisrecommendedtochooseapackagename
thatissuitableoverthelifeofanapplication.Theapplicationpackagenamecanbesetin
theapplication'smanifestfile.(AndroidOpenSourceProject2015a.)
The second step is to turn off logging anddebugging.Developers should deactivate all
logging and disable the debugging option before building the application for release.
Deactivate loggingby removingcalls toLogmethods in theapplicationsource filesand
disabling debugging by removing the Android debuggable attribute from the
<application> tag in theapplicationmanifest file,orby setting theAndroiddebuggable
attribute to false in themanifest file. Also, remove any log files or static test files that
were created in the project. After turning off logging and debugging, the project
directories should be cleaned. Developers should clean their project andmake sure it
agreeswiththedirectorystructuredescribedinAndroidProjects.Leavingstrayfilesinan
Androidprojectcanpreventanapplicationfromcompilingandcausetheapplicationto
behaveunpredictably.(AndroidOpenSourceProject2015a.)
Reviewandupdatethemanifestandgradlebuildsettings.Developersshouldverifythat
<uses-permission> element, Android icon and Androidlabel attributes, Androidversion
codeandAndroidversionnameattributesaresetcorrectly.Thedevelopershouldspecify
onlythosepermissionsthatarerelevantandrequiredforhisorherapplication,specify
values for these attributes that are located in the <application> element and lastly,
specifyvalues for theseattributes thatare located in the<manifest>element. (Android
OpenSourceProject2015a.)
After Reviewing and updating the application manifest and gradle build settings, a
developer should address compatibility issues. Tomake an application available to the
largest number of users, a developer should add support for multiple screen
configurations and optimize his/her application for Android tablet devices. Android
developersshouldconsiderusing theSupportLibrarywhiledesigninganapplication for
devicesrunningAndroid3.xorolder.TheSupportLibraryprovidesstaticsupportlibraries
thatcanbeaddedtoanAndroidapplication,whichenablesdeveloperstouseAPIsthat
areeithernotavailableonolderplatformversionsoruseutilityAPIsthatarenotpartof
59
the framework APIs. If an Android application uses remote servers or services, a
developer shoulduseanupdatedURLs for serversandservices.TheproductionURLor
pathfortheserverorserviceshouldbeusedandnotatestURLorpath.(AndroidOpen
SourceProject2015a.)
The last step is to Implement Licensing (if you are releasing on Google Play). If a
developerisreleasingapaidapplicationthroughGooglePlay,Android(2015a)advicesthe
developer to consider adding support for Google Play Licensing. The Licensing gives
developerscontrolaccesstotheirapplication.ThedeveloperdoesnothavetouseGoogle
PlayLicensingeveniftheyarepublishinganApplicationthroughGooglePlay(itissimply
optional).ChronometerXisanalphalevelapplicationandisnotreadyforthePlayStore.
7.1.3BuildingYourApplicationforRelease
When an application is completely configured it is time to build it into a release-ready
.apkfilethatissignedandoptimized.TheJDKincludesthetoolsforsigningthe.apkfile
(Jarsigner and Key tool); the Android SDK also contains software tools capable of
compiling and improving the .apk file (Android Open Source Project 2015a).
ChronometerX was developed using the Eclipse Android development environment.
Eclipseisabletoautomatetheentirebuildprocess.
7.1.4PreparingExternalServersandResources
Ifanapplicationreliesonaremoteserver,thedevelopershouldmakesuretheserveris
secure and that it is configured for production use. This is particularly important if an
applicationimplementingin-appbillingandsignatureverificationstepisperformedona
remoteserver.Also,ifanapplicationfetchescontentfromaremoteserverorareal-time
service(suchascontentfeed);thedevelopershouldbesurethecontentsbeingprovided
isuptodateandproduction-ready.(AndroidOpenSourceProject2015a.)
60
7.1.5TestingYourApplicationforRelease
TestingthereleaseversionofanAndroidapplicationhelpstoensurethattheapplication
runsproperlyonrealisticdeviceandnetworkconditions.Ideally,adevelopershouldtest
hisorherapplicationonatleastahandsetsizedeviceandatabletsizedevicetoascertain
that the user interface elements are sized appropriately and that the application's
performance and battery efficiency are satisfactory. (Android Open Source Project
2015a.)
ThisreportcontainsonlyafewAndroidsituationsthatshouldbeconsiderwhentesting
anapplication. AfteranAndroidapplicationistestedrigorouslyandthereleaseversion
of theapplicationbehaves correctly. Thedeveloper can then release theapplication to
users. For detailed information on Android release process, check “Releasing Your
ApplicationtoUsers”onAndroidofficialwebsite.
61
8MAINTENANCE
Theneedformaintenanceinallhumanendeavourscannotbeoveremphasized.Oxford
AdvancedLearner'sDictionary(2015)definesthemaintenanceofsomethingas“theact
ofkeepingsomethingingoodconditionbycheckingorrepairingitregularly”.Thisthesis
ismoreconcernedwithsoftwaremaintenance,whichhasanarrowermeaning.Software
maintenance isdefinedastheaggregateofallactivity(eithercompulsoryorobligatory)
required to provide a cost effective support to a software or software system. These
activitiesmaybeperformedduring thepre-delivery stageorat thepost-delivery stage.
The support activities in this context may involve correcting errors, improving the
software design, making enhancements, creating Interfaces with other systems or
softwareretirement.(TheInternationalStandard2006,4.)
8.1TypesofMaintenance
Software or system maintenance may be grouped under four categories: adaptive
maintenance, corrective maintenance, perfective maintenance and preventive
maintenance.Graph25showsthetypesofsoftwaremaintenance.Adaptivemaintenance
involves themodificationofasoftwareproductperformedafter thesoftwarehasbeen
deliveredtothesoftwarebuyer.Adaptivemaintenanceisprovidedtoadjustthesoftware
sothatitisabletoadapttochangeinitsoperatingenvironment.Thephraseoperational
environment in this contextdenotesexternal conditionsand the influences that acton
the system. For example, accommodation change in the hardware of an operating
system.(TheInternationalStandard2006,3.)
Corrective maintenance is performed in reaction to malfunctions, faults and defects
discovered in software or system after delivery. This fault might be as a result of
designingerrororlogicalorcodingerror.Designerrorsoccurwhenchangesmadetothe
software are flawed, deficient, wrongly transmitted, or the change request is
62
misunderstood. Logical errors are made during the coding phase and may result in
incorrect and unexpected behaviour. These behaviours might lead to software crash,
invalidtestsandconclusions.Alltheseerrorsarereferredtoasresidualerrors.Residual
errors derail the software behaviour from the established specifications.Note that the
need for correctivemaintenance isusually initiatedbybug reports from theuser. (The
InternationalStandard2006,3.)
GRAPH25.ModificationRequestchart(InternationalStandard2006).
Perfective maintenance involves updating a software to improve functionality by
implanting new services and correcting latent defects before they escalate to amajor
malfunction. Perfective maintenance might include improvement of graphical user
interface,improvingcodetoraiseefficiencyandreducerespondstime.(TheInternational
Standard,2006,4.)
Preventivemaintenanceencompassestheactofanticipatingtacklingimminenterrorand
the modification of a software product to correct these errors before they occur.
Preventivemaintenancemight includeupdatingdocumentation, code restructuringand
code optimization. Preventive maintenance also includes updating the software
documentsothatitreflectsthecurrentstateofthesoftware.(TheInternationalStandard
2006,4.)
63
ChronometerXwill bemaintained by uploading the source code to GitHub in order to
keep it alive and enabling other programmers from around theworld contribute to its
development. Babatunde Anafi will do other maintenance such as corrective
maintenance. GitHub is a website that let users share code with friends, colleagues,
classmates,andevencompletestrangers.Ithadovereightmillionusersatthetimethis
thesiswaswritten.(GitHub2015.)
64
9EVALUATIONANDDISCUSSION
Thissectionexplainstheevaluationprocess.Theevaluationprocessmaybedescribedas
amethodofdetermining theadvantages, the importanceand significanceofanentity.
Thus, the results of such a process are called evaluations (Scriven 2009). The “entity”
being evaluated in this thesis is ChronometerX (Software Application). Software
evaluation is a process that assesses a given software application to determine its
advantages,importanceandsignificancetoauser,inordertoascertainwhetherornotit
is well suited for the specific needs of a client. Application software is evaluated by
scrutinizing the tools and resources provided by the software base on a number of
evaluationcriteriaandpracticalexperimenttodetermineiftheproductisappropriateor
another application software will serve the user better. The evaluation criteria are
usually based on the Software requirements. (Baumgartner & Payr 1997, 2; Tatum et
al.2015.)
9.1Goalsandresultsofevaluation
Successisdefinedasthefavourableexecutionandtheendofanattemptorendeavour;
theachievementofone'sgoals(Dictionary.com2015).Foranyprocesstobesuccessful,it
musthaveapragmatic goal. In the contextof the softwareevaluation,Baumgartner&
Payr(1997)claimoneormoreofthreesimplequestionscanbeusedtoexpressthegoal:
“Whichoneisbetter?Howgoodisit?Whyisitbad?”
Which one is better? This kind of evaluation is achieved by comparing alternative
software, softwareprototypesor softwareversions todetermine theone thatwillbest
serve the needs of a client for the specific purpose. How good is it? The goal of this
questionortheprocessitrepresentsistodeterminethedegreeofdesiredqualitiesofa
finishedsoftware.Whyisitbad?Thisscrutinizestospotthefailuresinspecificsoftware;
Theresult isoftenused to improvesoftware functionalities.Theevaluationquestionof
this thesis is: Which one is better? The goal of this thesis evaluation process is to
65
determine if ChronometerX is useful to theAndroiduserby comparing it to thenative
Androidclockapplication.Thecriteriaforcomparisonisstatedinsection9.2.
9.2Evaluationcriteria
Softwareusabilityisthemeasureoftheefficiencyandeffectivenessofasoftwareproduct
with respect to the satisfaction a customer derives from a software product (Stewart
2000).Tosuccessfullyevaluateasoftwareapplication, theevaluationcriteriashouldbe
basedongeneralguidelinesandstandards.
Theguidelinesandstandards should take intoaccount theapplication’s contextofuse.
Thecontextofuseisdefinedbasedontheuser,thetasktobeperformed,theequipment
tobeusedandtheapplicationenvironment.Theuser inthiscase istheAndroidphone
user and the equipment is the Android phone. These evaluation criteria for
ChronometerX is based on the ChronometerX’s user requirements. ChronometerX and
theAndroidclockapplicationwillbescrutinizedtodeterminewhichonemeetstheuser
requirements.
9.3Evaluationtechniques
Evaluation technique is the method employed during a software evaluation process,
whichmaybedefined in termsoforganisationorbehaviour.Evaluation techniquesare
categorisedintotwocategories:thedescriptiveevaluationtechniquesandthepredictive
evaluation techniques. Both descriptive evaluation techniques and the predictive
evaluationtechniquesshouldbeusedineveryevaluation.(Baumgartner&Payr1997,7;
Gediga&Hamborg2001.)
Thedescriptiveevaluationtechniqueisbasedonthedescriptions.Itisusedtoobjectively
describethemainproblemofthesoftware.Thedescriptiveevaluationtechniqueisuser-
orientedandisdividedintotwoapproaches:behaviour-basedevaluationtechniquesand
opinion-basedevaluationmethods.Thebehaviour-basedevaluationtechniquesarebased
66
ontheuser’sreactiontoasoftwareapplication.Thistechniqueobservesandrecordsuser
behaviour. Opinion-based evaluation methods are also based on user reaction to a
softwareapplication,butthemethodcollectsdatabyconfrontingtheuser.Opinionbase
evaluation methods may come in the form of interviews, surveys or questionnaires.
(Baumgartner&Payr1997,7;Gediga&Hamborgetal.2001.)
Usabilitytestingemploysbothbehaviourandopinionbasedtechniques,inadditiontoa
number of experimental controls. For example, a hypothesis about a given software
product provided by an expert. Descriptive evaluation techniques always involve a
softwareprototypeandauseroruserstotesttheprototype.Thedatacollectedduring
Usability testing may require additional analysis and explanations in order to draw
reasonableconclusion.(Baumgartner&Payr1997;Gediga&Hamborgetal.2001.)
The predictive evaluation technique is an expertise-based technique unlike the
descriptive evaluation techniquewhich is user-based. The goal of predictive evaluation
technique is to collect information to help improve future software development and
reduceusabilityerrors.Thepredictiveevaluationtechniqueisexpertise-based;usersmay
partake in certain cases. A predictive evaluation technique relies on data. This data is
almost always a simulationof real users by the expert in charge. (Baumgartner&Payr
1997.)
9.4ChronometerXEvaluation
The ChronometerX is evaluated based on the descriptive evaluation (usability testing)
technique, by comparing the ChronometerX application with the Android clock
applicationbasedontheevaluationcriteria(Userrequirement).Seetable1onpage10of
thisthesisforChronometerX’sUserrequirements.
The Android clock application consists of four different utilities: alarm, world clock,
stopwatchandtimer.Onlythreeoftheutilitiespresent intheAndroidclockapplication
are listed in the evaluation criteria, but theChronometerX contains all the fiveutilities
listed in the criteria. Android clock application’sworld clock is a utility that shows the
67
currenttimeinaparticularplaceorcountryataparticulartime.Graph26showsthemain
activitiesoftheutilitiespresentintheAndroidclockapplication.Thefirstpicturetothe
leftshowsthealarm,thesecondscreenshotdisplaystheworldclockapplication,below
firstpicture is thestopwatchactivityscreenshotandto itsright isAndroidclock'stimer
activity.
AusersetsanalarminAndroidclockbyclickingontheAddactionbuttonontheupper
right corner of the screen below the Timer action button. The Add action button is
representedbyaplussign.Aftertheuserclicksontheplussign,theuserispresenteda
screenwherehe/shecansettheAlarmdetails.Whentheuserisdonesettingthedetails,
he/shecaneithersavetheAlarmbyclickingontheSavebuttonorcanceltheoperation
using the cancel button.Graph27describesAndroid clock application’s alarmutility. It
useshandclickstoillustratetheprocessinvolvedinsettinganalarmintheAndroidclock
application’salarmutility.
68
Graph26.TheAndroidclockapplication.
69
Graph27.TheAndroidclockapplication’sAlarmUtility.
70
9.5EvaluationConclusion
The Android clock application showcases better graphical user interface than the
ChronometerX’s GUI. It also includes world clock utility which is not present in the
ChronometerX. The Alarm utility of the Android clock application presents additional
featuressuchas, thesnoozeandsmartalarm,whicharenotpresent inChronometerX.
ThesmartAlarmfeatureoftheAndroidclockapplicationletanAlarmbegintoringata
low volume some minutes earlier and slowly increase in volume. The Android clock
application is a good application, but it does not meet the evaluation criteria (The
ChronometerXuserrequirements)whiletheChronometerXmeetstheuserrequirements.
Chronometers contain five utilities: Alarm, Calendar, Stopwatch, Timer and To-do list
utilitywhileAndroidclockapplicationhasonlyfourandonlythreearelistedintheuser
requirements. The Android clock application only shows all available alarms, but
ChronometerXhasaseparatescreentoshowupcomingeventssuchasnextAlarmand
nextCalendarevent.BasedontheEvaluationcriteria,ChronometerXisbettersuitedfor
theuserthantheAndroidclockapplication.
71
10CONCLUSION
Theadvancement intechnologyhas increasedthecapacityandthecapabilityofmobile
devices significantly. Smartphone can now perform computer-like functions. Android
operatingsystempowers80%ofactivatedmobiledevices,whichincludessmartphones.
Thus, theAndroidPlay Store is a largeandhighly lucrativemarket formobile software
developers.Thefast increasingnumberofAndroidmobiledevicesusershasattracteda
large number of software developers. Consequently, the number of applications in
Android Play Store is increase at a very fast rate, there is always more than one
application for the same purpose. This situation has challenged developers to become
moreinnovativeintheirdevelopment.
Thegoalofthisthesisprojectwastorecreatethemobileclockapplicationanddocument
thesixstagesofthedevelopmentlifecycleoftheapplication;requirementgatheringand
analysis, design, implementation or coding, testing, deployment andmaintenance. The
recreation was achieved by assembling five different applications into one application
package:Alarm,Calendar,Stopwatch,TimerandTo-dolistandalsodeliverthesummary
ofupcomingeventsortaskstousersonaseparatescreen(Activity).
The summary screen is the major innovation in the project. After ChronometerX was
developedduringthis thesiswork, itwasevaluatedandcomparedtotheAndroidclock
application basedon theChronometerX’s user requirements (see page 11 table 1) and
was found to be better suited for the user than the Android clock application.
ChronometerXisanalphalevelapplicationandisyettobepublishedintheAndroidPlay
Store.This thesisonlydescribesthedevelopmentcycleanddoesnot includetheactual
implementationprocess(thecodingphase).
This thesis encourages software developers to take advantage of the advancement in
mobile technology and the lucrativeness of the Android Play Store to become more
innovative.ThisthesisalsotriestogivesoftwaredeveloperswhowanttogointoAndroid
software development a glimpse of all the processes involved in Android software
developmentandalsotoencouragerecreationandinnovation.
72
REFERENCES
AndroidOpenSourceProject.2015a.LaunchChecklist.Available:
http://developer.Android.com/distribute/tools/launch-checklist.html.Accessed25March
2015.
AndroidOpenSourceProject.2015b.SupportingMultipleScreens.Available:
http://developer.Android.com/guide/practices/screens_support.html.Accessed21
March2015.
AndroidOpenSourceProject.2015c.TheAndroidStory.Available:
http://www.Android.com/history/.Accessed15April2015.
AndroidOpenSourceProject.2015d.InputTechnicalInformation.Available:
http://source.Android.com/devices/input/.Accessed15April2015.
AndroidOpenSourceProject.2015e.SensorsOverview.Available:
http://developer.Android.com/guide/topics/sensors/sensors_overview.html.Accessed
16April2015.
AndroidOpenSourceProject.2015f.Widgets.Available:http://
http://developer.Android.com/design/patterns/widgets.html.Accessed18April2015.
AndroidOpenSourceProject.2015g.AndroidNDK.Available:
https://developer.Android.com/tools/sdk/ndk/index.html.Accessed18April2015.
AndroidOpenSourceProject.2015h.DeveloperWorkflow.Available:
http://developer.Android.com/tools/workflow/index.html.Accessed18April2015.
AndroidOpenSourceProject.2015i.AndroidActivity.Available:
http://developer.Android.com/reference/Android/app/Activity.html.Accessed19May
2015.
Baumgartner,P.&Payr,S.1997.Methodsandpracticeofsoftwareevaluation:Thecase
oftheEuropeanAcademicSoftwareAward(EASA).In:ProceedingsofED-MEDIA97-
WorldConferenceonEducationalMultimediaandHypermedia.Available:
http://peter.baumgartner.name/wp-
73
content/uploads/2013/08/Baumgartner_Payr_1997_Methods-and-Practice-of-Software-
Evaluation_EASA.pdf.Accessed11April2015.
Chauhan,M.&Kumar,M.2013.BestPracticesinMobileApplicationTesting(White
Paper).Available:http://www.infosys.com/flypp/resources/Documents/mobile-
application-testing.pdf
Darcey,L&Conder,S.2010.SamsTeachYourselfAndroidApplicationDevelopmentin24.
Indianapolis,USA:Samspublishing.
Dictionary.com.2015.Success.Available:
http://dictionary.reference.com/browse/success.Accessed13April2015.
Gediga,G.&Hamborg,K.2001.EncyclopediaofComputerScienceandTechnology:
EvaluationofSoftwareSystems.Available:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.8362&rep=rep1&type=pdf
.Accessed11April2015.
GitHub2015.AboutGitHub.Available:https://github.com/about.Accessed1April
2015.
Janssen,C.2015a.AndroidSDK.Available:http://
http://www.techopedia.com/definition/4220/Android-sdk.Accessed18April2015.
Janssen,C.2015b.NativeMobileApp.Available:http://
http://www.techopedia.com/definition/4220/Android-sdk.Accessed18April2015.
Hardesty,L.2010.TheMITrootsofGoogle'snewsoftware.Android.Available:
http://newsoffice.mit.edu/2010/Android-abelson-0819.Accessed19April2015.
Leger,B.2012.Androidmarketnotasfragmentedasmanythink.Available:
http://info.localytics.com/blog/Android-not-as-fragmented-as-many-think.Accessed2
April2015.
Leiva,A.2014.MVPforAndroid:howtoorganizethepresentationlayer.Available:
http://antonioleiva.com/mvp-Android/.Accessed19April2015.
74
Nickinson,P.GooglePlayStore.Available:http://www.Androidcentral.com/google-play-
store.Accessed13April2015.
Scriven,M.1991.TheNatureofEvaluation.Available:
http://www.rismes.it/pdf/Scriven_domain_evaluation.pdf.Accessed11April2015.
Sheusi.J.2013.Android™ApplicationDevelopmentforJava®Programmers.Boston,
USA:CourseTechnologyPTR.
Soomro,D.2014.HowtoInstallAPKFiles:SideloadingonAndroidAvailable:
http://www.ubergizmo.com/how-to/how-to-install-apk-files-sideloading-on-Android/.
Accessed19April2015.
Stewart,T.2000.TheInternationalStandard.Ergonomicsuserinterfacestandards:are
theymoretroublethantheyareworth?Ergonomics.Geneva,Switzerland:International
OrganizationforStandardization(ISO).
Tatum,M.2015.WhatIsSoftwareEvaluation?Available:
http://www.wisegeek.com/what-is-software-evaluation.htm.Accessed13April2015.
Techopedia2015.CryptographicKeyAvailable:
http://www.techopedia.com/definition/24749/cryptographic-key.Accessed17May
2015.
TheInternationalStandard2006.SoftwareEngineering—SoftwareLifeCycleProcesses
—Maintenance.Available:
http://dis.unal.edu.co/~icasta/ggs/Documentos/Normas/14764-2006.pdf.Accessed1
April2015.
TheOxfordAdvancedLearner'sDictionary.2015.Maintenance.Available:
http://www.oxfordlearnersdictionaries.com/definition/english/maintenance.Accessed
23March2015.
TheStatisticsPortal2015.NumberofavailableapplicationsintheGooglePlayStorefrom
December2009toFebruary2015.Available:
http://www.statista.com/topics/1001/google/.Accessed17April2015.
Sommerville,I.2010.Softwareengineering.9thEdition.USA:Pearson.
75
UMLdiagrams2015.UMLUseCaseDiagrams.Available:http://www.uml-
diagrams.org/use-case-diagrams.html.Accessed20May2015.
Webopedia2015.Pixel.Available:http://www.webopedia.com/TERM/P/pixel.html.Accessed5April2015.