79
Anafi Babatunde ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: ChronometerX Thesis CENTRAL OSTROBOTHNIA UNIVERSITY OF APPLIED SCIENCES Degree Programme in Information Technology May 2015

ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

AnafiBabatunde

ANDROIDSOFTWAREDEVELOPMENTPROCESS.Casestudy:ChronometerX

Thesis

CENTRALOSTROBOTHNIAUNIVERSITYOFAPPLIEDSCIENCES

DegreeProgrammeinInformationTechnology

May2015

Page 2: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 3: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 4: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

9.5EvaluationConclusion 70

10CONCLUSION 71REFERENCES

Page 5: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 6: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 7: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.)

Page 8: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 9: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 10: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 11: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.)

Page 12: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

8

GRAPH2.TheAndroidAppWorkflow(AndroidOpenSourceProject2015h).

Page 13: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 14: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 15: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 16: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 17: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 18: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 19: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.)

Page 20: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 21: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 22: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 23: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 24: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 25: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 26: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 27: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 28: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 29: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 30: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 31: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

27

GRAPH7.ChronometerXTo-doListUsecasediagram.

TABLE17.StartTodoUsecase.

NameoftheUsecase:StartTodo

Actors:Users.

Preconditions

ChronometerXmustbeopen.

DescriptionoftheUsecase

UserclicksontheTo-dolistActionIconinLaunchActivity.

Post-conditions

To-dolistApplicationisopen.

Exceptionsdescriptions

None.

Page 32: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 33: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 34: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 35: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 36: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 37: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

33

GRAPH9.ChronometerXAlarmUsecasediagram.

TABLE24.AddAlarmUsecase.

NameoftheUsecase:AddAlarm

Actors:Users

Preconditions

AlarmApplicationisopened.

DescriptionoftheUsecase

UserclicksontheAddAlarmactionbuttontoaddanAlarm

Post-conditions

ThesetAlarmscreenopensandtheuserisabletosetAlarmvalues.

Exceptionsdescriptions

None.

Page 38: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 39: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 40: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 41: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

37

TABLE31.DismissAlarmUsecase.

NameoftheUsecase:DismissAlarm

Actors:Users

Preconditions

AlarmTimeisreached,PlayToneorPhoneVibrateisfired.

DescriptionoftheUsecase

ThishelpstodismissAlarmtemporarily.I.e.Stopplayingtoneandstopthephonefrom

vibrating.

Post-conditions

TheAlarmisdismissedtemporarily.I.e.phonestopplayingandphonestopvibrating.

Exceptionsdescriptions

None.

Page 42: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 43: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 44: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 45: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

41

GRAPH12.ViewsofChronometerXfundamentalActivities.

Page 46: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 47: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 48: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

44

GRAPH14.SettingupAlarmwiththeChronometerXAlarmApplication.

GRAPH15.AlarmRinging.

Page 49: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 50: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 51: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 52: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 53: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 54: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 55: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

51

GRAPH 20. The ChronometerX Summary screen on two emulators and on two real

devices.GoogleNexus6,SamsungS5,GalaxyTrendandOnePlusrespectively.

Page 56: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 57: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 58: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.)

Page 59: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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).

Page 60: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 61: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 62: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 63: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.)

Page 64: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 65: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 66: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.)

Page 67: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.)

Page 68: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 69: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 70: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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

Page 71: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 72: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

68

Graph26.TheAndroidclockapplication.

Page 73: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

69

Graph27.TheAndroidclockapplication’sAlarmUtility.

Page 74: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 75: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 76: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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-

Page 77: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 78: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.

Page 79: ANDROIDSOFTWARE DEVELOPMENT PROCESS. Case study: … · Android software development process: Case study of ChronometerX Instructor Kauko Kolehmainen Pages ... The fast increasing

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.