ThesisPDF Available

SOFTWARE ENGINEERING MSc Project Dissertation Evaluating Cloud Deployment Technologies for a cross-platform application for Nigeria SMEs

Authors:
  • University of Salford, Manchester

Abstract

Small and Medium Enterprises are the key players in the growth and development of Nigeria's economy (Olalekan et al. 2013). The firms are faced with numerous issues due to the lack of customers, various national and global economic difficulties, lack of adoption of information technology (IT), and policy inconsistencies. In other to reduce the problems faced by the SMEs, there is a need for the SMEs to adopt IT to their businesses (Ladokun et al. 2013). A cross-platform mobile application was developed which provides information processing capability to support SMEs regarding selling their products, getting more customer traffic, organisational strategy, management analysis, operations, and decision-making functions. In other to build the application, some series of requirement elicitation techniques were carried out. The objectives were to review past papers relating to the SMEs in Nigeria and to design, implement, test, and deploy the software database to the cloud. Agile methodology was used during the development process. The software development process was divided into increments, and each increment has requirement analysis, design, implementation, testing, and evaluation stages. During the development stage, Ionic Framework and Google Cloud (Firebase) were adopted. The Ionic Framework is an HTML5 mobile application development framework used for developing hybrid mobile applications (Android, iOS, and Windows). On the other hand, the Firebase is a Platform as a Service Google cloud server which is used for hybrid applications deployment. Numerous testings were carried out during the development stages of the software. Thus, at the final increment of the development, test plans were executed to identify any unattended errors or bugs. Even though there were some issues faced, yet the project objectives were achieved. ii Acknowledgement
SOFTWARE ENGINEERING
MSc Project Dissertation
Evaluating Cloud Deployment Technologies for a
cross-platform application for Nigeria SMEs
Umar Yusuf Dayyabu
Supervisor
Julian Bass
2017
i
Abstract
Small and Medium Enterprises are the key players in the growth and development of Nigeria
economy (Olalekan et al. 2013). The firms are faced with numerous issues due to the lack of
customers, various national and global economic difficulties, lack of adoption of information
technology (IT), and policy inconsistencies. In other to reduce the problems faced by the SMEs,
there is a need for the SMEs to adopt IT to their businesses (Ladokun et al. 2013). A cross-
platform mobile application was developed which provides information processing capability
to support SMEs regarding selling their products, getting more customer traffic, organisational
strategy, management analysis, operations, and decision-making functions. In other to build
the application, some series of requirement elicitation techniques were carried out. The
objectives were to review past papers relating to the SMEs in Nigeria and to design, implement,
test, and deploy the software database to the cloud.
Agile methodology was used during the development process. The software development
process was divided into increments, and each increment has requirement analysis, design,
implementation, testing, and evaluation stages. During the development stage, Ionic
Framework and Google Cloud (Firebase) were adopted. The Ionic Framework is an HTML5
mobile application development framework used for developing hybrid mobile applications
(Android, iOS, and Windows). On the other hand, the Firebase is a Platform as a Service
Google cloud server which is used for hybrid applications deployment.
Numerous testings were carried out during the development stages of the software. Thus, at the
final increment of the development, test plans were executed to identify any unattended errors
or bugs. Even though there were some issues faced, yet the project objectives were achieved.
ii
Acknowledgement
All thanks go to Almighty Allah (God) for giving me the competence, opportunity, wisdom
and health to successfully finished this research work. I would like to thank, appreciate and
dedicate this project to the following people:
Dr Julian Bass, for his support, professional advice, beneficial supervision during the
development and documentation phases of this thesis. This project would not be
achieved without his excellent guidance and support.
Dr Rislan Kanya, for his advice, support and guidance during the requirement gathering
of this thesis.
My parents, Dr Dayyabu Yusuf Garga, Hajiya Khadija Othman, Hajiya Aeesha Ishaq,
my brothers and sisters, and the entire Garga family for their prayers, support and
continuous morale assistance.
Thank you.
iii
Table of Contents
Abstract ............................................................................................................................................ i
Acknowledgement .......................................................................................................................... ii
Chapter 1: Introduction .................................................................................................................. 1
1.1 Background of the Study ..................................................................................................... 1
1.2 Statement of the Problem ..................................................................................................... 1
1.3 Aims ...................................................................................................................................... 2
1.4 Objectives ............................................................................................................................. 2
1.5 The Approach Adopted ........................................................................................................ 2
1.6 Project Management and Plan ............................................................................................. 3
Chapter 2: Literature Review ......................................................................................................... 4
2.1 Background Context............................................................................................................. 4
2.2 Significance of SMEs in Nigeria ......................................................................................... 4
2.3 Factors Affecting Adoption of ICT in Nigerian SMEs ...................................................... 5
2.4 Software Methodologies ...................................................................................................... 5
2.4.1 Waterfall Methodology................................................................................................. 6
2.4.1.1 Waterfall Strengths ................................................................................................ 7
2.4.1.2 Waterfall Weaknesses ........................................................................................... 7
2.4.1.3 When to Use Waterfall .......................................................................................... 7
2.4.2 Agile Methodology ....................................................................................................... 8
2.4.2.1 Strengths of Agile .................................................................................................. 8
2.4.2.2 Weaknesses of Agile ............................................................................................. 8
2.4.2.3 When to Use Agile Model..................................................................................... 8
2.4.3 Spiral Methodology ...................................................................................................... 9
2.4.3.1 Strengths of Spiral Methodology .......................................................................... 9
2.4.3.2 Weaknesses of Spiral Methodology ..................................................................... 9
2.4.3.3 When to Use Spiral Model .................................................................................... 9
iv
2.5 Chosen Methodology ......................................................................................................... 10
2.6 Cloud Deployment Technologies Evaluation ................................................................... 10
2.6.1 Software as a Service (SaaS) ...................................................................................... 11
2.6.2 Platform as a Service (PaaS) ...................................................................................... 11
2.6.3 Infrastructure as a Service (IaaS) ............................................................................... 11
2.7 Chosen Cloud Deployment Technology ........................................................................... 12
2.8 Project Development Tools, Languages and Algorithms ................................................ 13
2.8.1 PhoneGap .................................................................................................................... 14
2.8.2 Ionic Framework ......................................................................................................... 15
2.9 Chosen Development Framework ..................................................................................... 15
2.10 Summary ........................................................................................................................... 16
Chapter 3: Software Specification and Design ........................................................................... 17
3.1 Introduction......................................................................................................................... 17
3.2 Requirement Analyst .......................................................................................................... 17
3.3 Requirement Specification ................................................................................................. 17
3.3.1 Functional Requirements ............................................................................................ 17
3.3.2 Non-Functional Requirements ................................................................................... 19
3.4 System Design .................................................................................................................... 19
3.4.1 System Architecture .................................................................................................... 20
3.4.2 Entity Relationship Diagram ...................................................................................... 20
3.4.3 Use Case Diagram....................................................................................................... 21
3.4.4 Activity Diagram......................................................................................................... 22
3.4.5 Class Diagram ............................................................................................................. 24
3.4.6 Deployment Diagram.................................................................................................. 25
3.4.7 Wireframe Design ....................................................................................................... 26
3.6 Summary ............................................................................................................................. 29
Chapter 4: Development and Implementation ............................................................................ 30
v
4.1 Introduction......................................................................................................................... 30
4.2 System Implementation...................................................................................................... 30
4.2.1 Development Environment......................................................................................... 30
4.2.3 Development Tools ..................................................................................................... 31
4.2.3.1 Ionic Framework .................................................................................................. 31
4.2.3.2 HyperText Markup Language (HTML) ............................................................. 31
4.2.3.3 Syntactically Cascading Stylesheet (SASS) ...................................................... 32
4.2.3.4 AngularJS ............................................................................................................. 32
4.2.4 Development Platforms .............................................................................................. 32
4.2.5 Cloud Server and Database ........................................................................................ 32
4.2.6 Some Ionic Framework Inbuilt Functions and Custom Functions .......................... 33
4.2.7 User Interface .............................................................................................................. 35
4.3 System Implementation Challenges .................................................................................. 42
4.3.1 Main Problems Faced ................................................................................................. 42
4.3.2 Solutions Adopted ....................................................................................................... 43
4.4 Summary ............................................................................................................................. 43
Chapter 5: Testing and Results .................................................................................................... 45
5.1 Introduction......................................................................................................................... 45
5.2 Test Planning ...................................................................................................................... 45
5.2.1 Unit Testing ................................................................................................................. 45
5.2.2 Integration Testing ...................................................................................................... 46
5.2.3 Functional and System Testing .................................................................................. 46
5.2.4 Acceptance Testing ..................................................................................................... 46
5.2.5 Regression Testing ...................................................................................................... 47
5.2.6 Beta Testing ................................................................................................................. 47
5.3 Test Procedure .................................................................................................................... 47
5.3.1 Test Suite ..................................................................................................................... 48
vi
5.3.2 Test Report .................................................................................................................. 49
5.3.3 Error Reports ............................................................................................................... 55
5.4 Summary ............................................................................................................................. 55
Chapter 6: Critical Evaluation ..................................................................................................... 57
6.1 Introduction......................................................................................................................... 57
6.2 Software Evaluation Methodology.................................................................................... 57
6.3 Achievements ..................................................................................................................... 58
6.4 Product Evaluation and Future Enhancement .................................................................. 59
6.4.1 Product Evaluation ...................................................................................................... 59
6.4.2 Future Enhancement ................................................................................................... 60
6.5 Lessons Learned ................................................................................................................. 60
6.5.1 Chosen Methodology .................................................................................................. 61
6.5.2 Development Framework ........................................................................................... 61
6.5.3 Software Quality Management .................................................................................. 61
6.5.4 Time Management ...................................................................................................... 62
6.6 Summary ............................................................................................................................. 62
Chapter 7: Conclusions ................................................................................................................ 63
References ..................................................................................................................................... 66
Appendix ....................................................................................................................................... 77
Appendix 1: Gantt Chart .......................................................................................................... 77
Appendix 2: Project Source Code ........................................................................................... 78
1
Chapter 1: Introduction
1.1 Background of the Study
A small and medium scale enterprises (SMEs) in Nigeria are businesses that employ a small
number of employees and does not have a high volume of sales (Cassavamillers 2016). Such
enterprises are privately owned and operated sole proprietorships, corporations or partnerships.
The legal definition of a small-medium scale business varies by industry and country. For
instance, in Great Britain, SME is any business with less than 250 employees (Ward & Rhodes
2014) and has an annual turnover not exceeding approximately £44 million, and an annual
balance sheet total not exceeding £38 million (Fraser 2015). In Nigeria, the Government's
industrial policy of 1989 defined an SME as “any business that its total investment is between
N10,000.00 Naira and N2 million Naira (approximately £23.7677 to £4,753.54 British Pound)
exclusive of land but including working capital.” (Unesco 2010).
Recent studies established that SMEs are the major key players in the growth and development
of Nigeria economy (Olalekan et al. 2013). Even though the difficulties and the problems of
SMEs are tied to some economic variables and the challenges that characterised the nation's
economy (Popoola 2016). Some of the challenges and problems include the high level of
unemployment, high poverty incidence, and low industrialisation capacity, lack of finance,
inconsistent government policies and inadequate infrastructure and insecurity of the business
climate among others (Agwu 2014). Nevertheless, the internal features of small and medium scale
enterprises to have also associated with some economic variables to ruin the capacity of the
economy. Issues of a low level of entrepreneurial skills, poor management practice, inadequate
equity capital and lack of information among other problems (Sanni 2009).
1.2 Statement of the Problem
Based on the literature review that was carried out by (Olatunji 2015), it shows that the ongoing
advances in information systems and communication technologies allow enterprises to achieve
greater levels of productivity, service delivery, and efficiency. In Nigeria, In spite of the efforts of
government and other stakeholders to achieve economic growth and development through
sustainable SMEs, the rate of survival of SMEs in their first year is less than 5% (Basil 2005).
Because most of SMEs in Nigeria find it very difficult to get support through advertising their
products or services at the startup level, simply because there are no platforms to help them. Even
though some companies have a platform that can support those SMEs to push their product
2
online to generate traffic, but those platforms are costly for them (the SMEs) because, at early
start-up, they are struggling to survive due to small capital (Fatai 2016).
Limited capital usually characterises SMEs. Besides, they often lack the requirements to assess
the various funding options open to business firms. Nevertheless, in their efforts to expand and
improve their businesses, SMEs owners involve in several credit options which further exposes
them to business and economic risks. Furthermore, SMEs are weak and confront a lot of
competition from their larger counterparts regarding publicising their products online. These
regularly put them in poor strategic positions because they lack the money needed to withstand
such competition. These expose them (the SMEs) to severe strategic risks which limit their
chance of survival.
1.3 Aims
This project seeks to design and evaluate software solution that will allow SMEs to sell their
products to the nearest customers. The software will assist customers to search for a product
or service closest to their location. Furthermore, the software will help to generate more
customer traffic, and revenue by increasing the presence of those SMEs online to the customers
on the platform.
1.4 Objectives
From the above-stated problems, the study explores the various business risks facing SMEs in
Nigeria. The objective is to recommend strategies that could be used in their management to
enhance their sustainability.
The above aim will be accomplished by fulfilling the following objectives:
i. Carried out requirement gathering for the proposed software solution.
ii. Review the literature concerning the SMEs uptake and experience of the similar
platforms (if any).
iii. Design and implementation of the SME software solution.
iv. Test the software solution before production.
v. Deploy the software database to cloud.
1.5 The Approach Adopted
In other to choose the best software methodology for the project, research on different
methodologies were carried out (See Section 2.4), and Agile methodology was adopted due to
its ability to revisit the stages of development whenever there is a need for a modification in
3
the user requirements (See Section 2.5 for the chosen methodology). Additionally, Ionic
Framework was adopted as the development platform for this project software development
(See Section 2.7 to 2.9).
1.6 Project Management and Plan
Excellent project management is essential in implementing of acceptable software projects.
The aim was on time management and budget (Chatzoglou et al. 2007). Even though external
or business powers do not drive the project, but the project had brief due dates. The project
management and plan tool used in this project was Gantt Project software, where Gantt chart
was designed (See Appendix 1). A Gantt chart is a sequence of horizontal lines displays the
amount of to do and done tasks within some specified periods of time. The project was divided
into three increments, and each increment has four phases namely; project management, project
development and implementation, testing, and finally evaluation.
4
Chapter 2: Literature Review
2.1 Background Context
The Small and Medium Industries and Equity Investment Schemes defines SME in Nigeria as
any business with a maximum asset support of N200 million Naira (approximately £423,570.01
British Pound) excluding land and business capital and with the highest number of staff not
exceeding 300 (Uche & Ojiakor 2013). SME has been defined along a broad continuum of size
and type. Regarding size, measures used to classify SMEs include assets, employment and
revenue (Anga 2014). Also, (Anga 2014) observed that SME deal with a business whose scale
of operation is less than the average for the industry. In 1993, the Apex Bank in Nigeria found
it necessary to revise its definition of the SME to mean; an enterprise with the total cost of land
including working capital above N1 million Naira but not exceeding N10 million Naira
(approximately £2,117.85 - £21,178.60 British Pound).
The Contingency hypothesis which measures the SME’s performance and effectiveness claim
that there is no ideal technique to systematise a firm and the organisation structure of the SME
(Anga 2014). In other words, contingency hypothesis contended that the most fitting structure
for SME is the one that best fits a given operating contingency. Every SME confronts its own
set of challenges which are either external or internal constraints because every SME has
different organisational culture and different point of view towards risk.
2.2 Significance of SMEs in Nigeria
Small and Medium Enterprises have been discovered to be a key enabler for Nigeria’s
economic growth (Nouel 2010). (Apulu & Ige 2011) Attest that SMEs are recognised as one
of the principal sources of economic growth and a vital element in supporting private sector
development and partnership in Nigeria. Small and Medium Enterprises help to create jobs
employment and are often play an essential role in the growth and development of dynamic
economies. Hence, economic growth and development in Nigeria can be attained through the
emergence of influential SMEs, which will subsequently develop to become key players in the
developing Nigeria’s economy (Apulu & Ige 2011). Furthermore, SMEs help in diversifying
economic activities that have outstanding contributions to both imports and exports
respectively (Terungwa 2011).
The significance of SMEs for productivity, growth and competitiveness of Nigeria’s economy
is acknowledged universally (Apulu & Ige 2011), since SMEs provide a substantial local
5
capital formation, achieve high levels of productivity, and contribute to improved living
standards. SMEs are recognised as a leading means of accomplishing impartial and sustainable
industrial diversification.
2.3 Factors Affecting Adoption of ICT in Nigerian SMEs
Numerous factors are influencing the adoption of ICT in SMEs in Nigeria. As (Adebayo et al.
2013) pointed out that, infrastructure, funds, skills and training, government support and
management support attitude are the core factors that are affecting ICT adoption in Nigeria by
SMEs. According to (Ladokun et al. 2013), infrastructural, lack of finance, cost of acquisition,
skills, management and government support are the main factors that are affecting ICT
adoption by SMEs in Nigeria.
(Ladokun et al. 2013) Categorised internal and external factors that influence the adoption of
ICT by SMEs in developing countries. SMEs which are affected by external macroeconomic
factors; economic, political environment, technological, social and legal elements, are not
controllable (Pasanen 2003). These factors are rarely influenced by administration decisions
because they are external elements and beyond the control of SME. Internal elements, on the
other hand, are those limitations that affect the businesses of SME proprietor's capacity to work
proficiently, notwithstanding any inmate potential in the owner (Baloyi 2010). Simultaneously,
as (Darren & Conrad 2009) pointed out that internal factors are the skills, personal attributes
and competencies of the individual proprietor which are essential to how well the business
confronts up to the inevitable problems that will emerge. (Duan et al. 2002) pointed out that
lack of ICT skills and knowledge in SMEs are the principal challenges faced by all European
countries, particularly in the Portugal, UK and Poland.
2.4 Software Methodologies
A software development methodology is a process of managing a software development project
(Alabama Supercomputer Center 2015). In other words, a software development methodology
is a set of principles that are used in the process of researching, planning, designing,
developing, testing, deploying and maintaining a software product (Liviu 2014). The
methodology likewise consists of the fundamental values that supported the project team and
the development tools used in the planning, development, implementation and testing
processes of this project. The methodology occasionally addresses issues like selecting
software components for inclusion in the current version, when the product will be released,
who works on what, and the different testing carried out. Choosing an appropriate software
6
methodology can make a big difference in achieving a successful result of a project when
measured regarding cost, client happiness, meeting deadlines, minimising expenditures on
failed projects (Liviu 2014). Some software development methodologies were reviewed to
choose the most appropriate one for the project. These are:
2.4.1 Waterfall Methodology
The waterfall is usually the first methodology recognised as being devoted to software
development projects. Its principals are described by Winston W. Royce’s article even though
the actual term waterfall is not found in the article (Liviu 2014). It emphasises detailed planning
and extensive documentation. The Waterfall methodology is a linear sequential process
(Alabama Supercomputer Center 2015) where every phase begins only after the previous stage
has been completed. Each stage has its outputs.
The waterfall methodology emphasises a linear sequential process (See Figure 2.1 below)
between defined phases (Awad 2005). Each stage consists of a clear set of tasks and outputs
that must be accomplished before the following stage can begin (Riemenschneider et al. 2002).
The stages are regularly named distinctively, yet the essential idea is that the first phase tries
to capture the essential requirements of the system, the second stage determines how it will be
designed (Awad 2005). The third stage is where the programmers begin writing the code
(implementation stage), the fourth phase is the testing of the system functionalities, and the
final stage focused on the maintenance of the developed software, training staff and substantial
documentation.
Figure 2.1: Waterfall Methodology
7
Software development firms that use waterfall methodology spend a tremendous amount of
time in each phase of development, up until all requirements are cleared (Mccormick 2012).
The confidence that drives this kind of software development model is that extensive amount
of time spent in initial requirement gathering stage helps to correct bugs in advance (Szalvay
2004). Once the requirement phase is over, it is implemented exactly in the coding stage, with
no changes later. Usually, the requirement analysis, design and implementation teams are
isolated and work on a small component of the entire project. Priority is placed on
documentation of each development phase.
2.4.1.1 Waterfall Strengths
Companies are still using waterfall model due to its simplicity (Awad 2005; Alshamrani &
Bahattab 2015). In other words, waterfall model is manageable and easy to understand and
used by non-technical users. The waterfall model is straightforward to implement because it
follows the process of define before design, and design before coding (Sasankar & Chavan
2011; Awad 2005; Alshamrani & Abdullah 2015).
2.4.1.2 Waterfall Weaknesses
The core weakness of waterfall methodology is that it is challenging to accommodate new
requirements in the middle of implementation, which often happens as problems are uncovered
in the development process, or business climates change what is needed in the software
(Alabama Supercomputer Center 2015). Simultaneously, waterfall model is not an ideal model
for complex and Object Oriented projects (Alshamrani & Bahattab 2015). Finally, waterfall
model gives clients little opportunity to preview the software until it may be too late (Awad
2005).
2.4.1.3 When to Use Waterfall
As pointed out by (Alshamrani & Abdullah 2015), waterfall model is best for the project with
any of the following objectives:
i. When quality is more crucial than project budgets or schedule.
ii. When a user is transferring an existing software to a new platform.
iii. When there is a need for a new version of existing software.
iv. When requirements of the software are very well known, clear, and fixed.
8
2.4.2 Agile Methodology
The agile model, focus on agility and flexibility in development (Mccormick 2012). Instead of
spending of a tremendous amount of time on development plans, the agile model involves
multiple iterative development methods that attempt to improve the deliverables with every
iteration (Szalvay 2004). Each iteration goes through all the stages of requirements analysis,
design, implementation and evaluation (Alabama Supercomputer Center 2015). The design is
not finalised at the early stage of the project development. Thus, it kept open to last minute
changes due to the flexibility of agile, iterative implementation. The team structure of agile
development is cross-functional, and its closely knit and self-organising (Mccormick 2012).
The design stage is always flexible to change, and its allowed changes as new ideas come in
with each release (Awad 2005). Less significance is given to documentation and more to the
speed of conveying a working project. Clients might be given a demonstration at the end of
every iteration, and their input may decide the following course of changes in the next iteration.
The iterative cycle of agile proceeds till the client is conveyed with software which precisely
lives up to his expectations.
2.4.2.1 Strengths of Agile
The most critical standard in an agile model is customer satisfaction by providing them with a
rapid and continuous delivery of a small and useful product (Mccormick 2012). The software
delivery usually happens after every two weeks. The measure of progress used in the agile
model is the client satisfaction by rapid, continuous delivery of useful software at each
increment or sprint. Since the product is developed in small increments, changes in
requirements can easily be introduced into the product (Szalvay 2004).
2.4.2.2 Weaknesses of Agile
In agile model, there is lack of emphasis on requirements gathering, design and documentation
of the software. Furthermore, due to requirements emerge and evolve throughout the
development, it creates two significant issues though (Kelly 2007). One is the potential for
scope crawl, which can create the danger of ever-lasting projects. The other is that there is
considerably less consistency, during the project development, about what the project is going
to convey (Awad 2005).
2.4.2.3 When to Use Agile Model
Due to the flexibility of agile, it is best to be whenever new changes are needed to be
implemented in software. Simultaneously, the freedom agile model gives to changes is very
9
important, and it means that new changes can be applied at little cost because of the frequency
of new increments that are produced (Sasankar & Chavan 2011). Finally, the agile model is
best to be used when requirements are not clear at the beginning of a project (Alshamrani &
Abdullah 2015).
2.4.3 Spiral Methodology
The Spiral Methodology was designed to incorporate the best elements from the Waterfall and
Prototyping Models and introduces a new factor namely risk-assessment (Sasankar & Chavan
2011). The term spiral is utilised to portray the process that is followed as the development
stage of the system happens. Like the prototyping model, an initial version of the software is
designed, and then modified the software based on the feedback received from the clients
(Liviu 2014).
Risk assessment is added as a phase in the development process as a method for assessing every
version of the software to determine whether development should proceed. If the identified
risks are too many, the customer may decide to suspend the project.
2.4.3.1 Strengths of Spiral Methodology
The following are advantages of the spiral model as defined by (Alshamrani & Abdullah 2015;
Sasankar & Chavan 2011).
i. The high amount of risk analysis of the software.
ii. Additional requirements can be added while the project is ongoing.
iii. Concerned individuals of a project can provide early analysis on each stage and each
loop as well because of quick prototyping tools.
2.4.3.2 Weaknesses of Spiral Methodology
The risk analysis is a feature that occurs all the time in real life situations, but not frequently in
the software development industry (Liviu 2014; Sasankar & Chavan 2011; Alshamrani &
Abdullah 2015). Furthermore, risk assessment expertise is required. Lastly, time spent for
evaluating the risks for small or low-risk projects may be too much.
2.4.3.3 When to Use Spiral Model
Spiral model is best for the following set of projects as defined by (Alshamrani & Abdullah
2015; Liviu 2014)
i. When costs and risk evaluation of software are essential.
ii. For medium to high-risk projects.
10
iii. When significant changes are expected.
iv. When clients are not exactly sure what their needs are.
2.5 Chosen Methodology
The agile model was chosen for this project because of its capacity to revisit the stages of
development effectively improves project productivity (Szalvay 2004). The idea of revisiting
stages over and over is known as incremental and iterative development. Even though spiral
model also offers revisiting stages, but operationalising it difficult (Osterweil 2011). The agile
software development life cycle is divided into increments, and each increment touches on each
of the traditional stages of development namely requirements, design, implementation, testing,
and evolution (Alshamrani & Abdullah 2015). With agile, requirements phase is an ongoing
process that is regularly revisited. As new requirements emerge and as the scope of the project
changes, the agile methods frequently capture those new requirements at each increment. Also,
agile allows for multiple increments, over a project life cycle to accurately address complexities
and risk factors (Sasankar & Chavan 2011).
2.6 Cloud Deployment Technologies Evaluation
Cloud hosting is a service that is provided to clients via collectively connected servers that
constitute a cloud, as opposed to being rendered by a single server (Kuyoro et al. 2011). Cloud
services are conveyed by a third-party provider who owns and control the infrastructure. The
main advantages of cloud service include flexibility, scalability, efficiency and resilience
(Awosan 2014; Kuyoro et al. 2011). The cloud hosting offers an inventive business model for
organisations to receive IT services without upfront venture (Ya’u & Zambuk 2011).
Regardless of the potential gains accomplished from the cloud hosting, the companies are slow
in incorporating it to their organisations due to security issues and challenges related to it (Haris
et al. 2012). Security is one of the core issues which hamper the growth of cloud hosting in
Nigeria (Kuyoro et al. 2011). Companies in Nigeria found cloud hosting worrisome. Because
cloud hosting is based on the concept of giving your business data to the third-party provider
to store it for you (Ya’u & Zambuk 2011); with the end goal that the customers should be
vigilant in understanding the dangers of information breaches in this new environment.
Cloud computing services are categorised into three areas as shown in Figure 2.2: Software as
a Service, Platform as a Service and Infrastructure as a Service (Awosan 2014).
11
2.6.1 Software as a Service (SaaS)
SaaS is the topmost and simple to adopt layer of cloud computing services (Awosan 2014).
(See Figure 2.2), this is because the SaaS includes applications such as audio and video editors,
word processors, and databases to be hosted by cloud vendor and are made promptly accessible
to the clients on demand or pay as you go (Ravikumar & Gopalakrishnan 2012; Awosan 2014).
Examples of SaaS include Microsoft Office 365, Customer Relation Management (CRM),
Google App Engine, Google Document (Doc), Salesforce.com apps, and Yahoo Email (Haynes
2014; Awosan 2014).
Software as a Service allows the organisation to save their IT expenditure on infrastructure,
hardware, networking, software, and employees costs (Automation Services & Basware
Corporation 2014). SaaS vendors play the role of outsourcing merchants who offer the
contracting service to their customers by charging on a monthly basis (Haynes 2014; Davitt
2016; Ravikumar & Gopalakrishnan 2012). Consequently, SaaS vendors will handle every
single required administration for their customers, including regular software maintenance,
updating, and customisation (Awosan 2014).
2.6.2 Platform as a Service (PaaS)
PaaS is the middle layer of cloud computing layer. (See Figure 2.2). It consists of application
development platform and operating systems which can be accessed and utilised through the
internet (Kuyoro et al. 2011; Apprehenda 2016). PaaS offers an integrated set of a development
environment that programmers can tap to design their applications without having any clue of
the processes running underneath the service (Kuyoro et al. 2011). Development team use this
platform to implement, test, deploy and host their application via the internet (Kulkarni et al.
2011; Kuyoro et al. 2011). Thus, PaaS offers development team a service that provides a
complete SDLC management, this include requirement gathering, design, implementation,
deployment, testing and maintenance (Kuyoro et al. 2011). Example of PaaS includes Google
Firebase, Microsoft Azure and International Business Machine.
2.6.3 Infrastructure as a Service (IaaS)
As Figure 2.2 shows, IaaS is the bottom layer of the cloud computing pyramid and is essentially
what software applications run on and where data is stored (Awosan 2014). This service
provides available storage, networking, servers, management and support components for
organisations, making use of virtual servers (Awosan 2014; Davitt 2016; Apprehenda 2016).
The IaaS providers dedicated servers are only shared with contracted customers at a pay per
12
use (Apprehenda 2016; Kuyoro et al. 2011; Awosan 2014). These resources are accessed
through the internet, by that, it allows businesses to transfer their data to the cloud and dissolve
their local data centres (Awosan 2014). Examples of IaaS include Amazon web services,
Savvis, and Go Grid. Individuals or organisations can deploy each of these services either as a
public, private, or hybrid cloud.
Figure 2.2: Cloud Computing Pyramid (Haynes 2014)
2.7 Chosen Cloud Deployment Technology
Platform as a Service was chosen for this project because PaaS includes set of development
tools and services that are designed to make application development and deployment
processes quickly and efficiently (Kavitha 2014). Also, PaaS offers an integrated set of a
development environment that programmers can tap to design their applications without having
any clue of the processes running underneath the service. Unlike SaaS, which only provides
services for clients to subscribe in other to use them. Example of the service is Microsoft Office
365. Likewise, PaaS was chosen over IaaS because, PaaS is designed to support developers
and make writing code, testing, deploying efficiently.
Platform as a Service Google product called Google Firebase Service which was launched in
April 2012 was used in this project. Firebase provides the client with cross-platform (web and
mobile) tools to develop high-quality applications and grow their user base (Magnani et al.
2017). Firebase comprises of integral features that developers can use to fit their needs. It also
provides fast accessing of stored data. The platform tools are elementary to use. There are some
numerous services rendered by firebase (see Figure 2.3). These include firebase cloud
13
messaging, firebase analytics, firebase authentication, real-time database, firebase crashing
reporting, firebase hosting, firebase notifications, firebase storage, firebase cloud functions,
firebase remote configuration, firebase test labs, performance monitoring, firebase invites, app
indexing, AdWords and AdMob. (Magnani et al. 2017; Google Firebase 2016): The firebase
platform tools were straightforward to implement everywhere in the project.
Figure 2.3: Firebase Benefits (cmarix 2017)
2.8 Project Development Tools, Languages and Algorithms
Developing applications for different operating systems in these days is a serious challenge.
Nevertheless, the process of building an application can be both extremely tedious and
exorbitant because of various programming languages used for different operating systems (see
Table 2.1 below). When it comes to creating mobile applications for the different operating
system, it is essential for the development team to know and master different programming
languages. At the moment, Google Android uses Java language created by Google (Danielsson
et al. 2014). Apple iPad and iPhone use Objective-C and Swift. Windows Phone uses their own
owned programming language C-Sharp (C#). Others include BlackBerry, which uses Java.
Recently, various tools have been developed to handle the different languages complication
going under the name cross-platform (Danielsson 2014).
14
Table 2.1: Different Operating System's Programming Languages
Operating System
Programming Language Required
Google Android
Java, Xamarin (C-Sharp)
Apple iOS
Swift, Objective C
Microsoft Windows
.Net
Web Application
HTML, CSS, JavaScript, PHP, .Net
RIM BlackBerry
Java
There is an extensive variety of cross-platform development platforms available (Andrade et
al. 2015; Danielsson 2014). See Table 2.2. This paper focused more on the leading adopted
platforms namely PhoneGap and Ionic Framework.
Table 2.2: Most Adopted Cross-Platform Platforms
Supported Language
Developer
HTML5, CSS and JavaScript
Nitobi
HTML5, CSS, SASS and AngularJS
Drifty Co
C-Sharp (C#)
Microsoft
HTML5, CSS, JavaScript, C and C++
Marmalade technologies
HTML, JavaScript, C and C++
MoSync
HTML and Ruby
Motorola
2.8.1 PhoneGap
The PhoneGap is a framework which was created by Nitobi in 2008 as an open source solution
for cross-platform mobile application development. At first, it only supports Android, iPhone
and Blackberry, later in the WebOS, Symbian and Windows Phone in 2011 (Guangyuan &
Wooju 2013; Danielsson 2014). The PhoneGap framework was contributed to the Apache
Software Foundation under the name Apache Cordova in October.
PhoneGap uses web technologies standards to develops web applications and mobile devices
(Adobe PhoneGap 2016). Considering that the PhoneGap apps are standards compliant, they
are future-proofed to work with different browsers as they evolve. Through PhoneGap library
15
and the native code generated. It allows Application Programming Interface (API) calls for
mobile phone hardware. The API enables a developer to access native operating system
functionality using JavaScript (Thakare et al. 2015). The development team can build their
application logic using JavaScript, and the framework API controls the interaction with the
native operating system.
The benefit of PhoneGap to developers is that it is an open source and its standards-based
allows developing cross-platform applications with web technologies such as HTML, CSS and
JavaScript. Furthermore, it supports the major operating systems (Norbert 2015).
2.8.2 Ionic Framework
The Ionic Framework is an open-source platform that is used to create hybrid mobile
applications (Aarush & Abdul 2016). It is developed using AngularJS and Apache Cordova.
The Ionic framework supports developers with all the tools, components and functionalities
used in native mobile development. Programmers can develop their applications using tools
that are supported by the framework.
The Ionic Framework is the most convenient platform to use for design and implementation of
cross-platform applications (Aarush & Abdul 2016), because native apps are platform specific,
and have specific development tools, and are extremely tedious and expensive. But the Ionic
Framework is platform independent since it uses HyperText Markup Language (HTML),
Syntactically Cascading Style Sheet (SASS) and AngularJS. The development process is quick,
and developers have a direct access API with Cordova.
The advantage of Ionic Framework to developers is that it is an open source and its standards-
based allows building cross-platform mobile applications with web technologies such as
HTML, SASS and AngularJS. Furthermore, it supports the major operating (Aarush & Abdul
2016).
2.9 Chosen Development Framework
PhoneGap is one of the popular solutions for cross-platform development (Guangyuan &
Wooju 2013). The framework uses HTML, CSS and JavaScript which is efficient for the
development, but also due to the JavaScript security issues, it makes it the most ineffective
solution (Danielsson, 2014) for this project. Xamarin framework was also put into
consideration, but because the framework uses C-Sharp (C#) programming language, and
Microsoft Visual Studio, this made Xamarin less attractive for this project.
16
Ionic Framework was chosen for this project; this is because, the framework is open-source,
and it uses HTML, SASS, and AngularJS technologies. The AngularJS makes it easy to
communicate to the server side of the application, as in this project case, Google Firebase. Even
though, Ionic requires a comprehensive understanding of AngularJS framework as it acts as
the server side language of the framework (Aarush & Abdul 2016). Thus, it allows the creation
of single view and multi-view pages’ applications efficiently and productively.
2.10 Summary
In this chapter, numerous research papers on SMEs in Nigeria, software methodology, cloud
hosting, programming languages, tools, and platforms were reviewed with the aim of finding
the best possible solution on how to develop software that will help to boost the productivity
and customer traffic to the SMEs in Nigeria. The agile model was chosen due to its ability to
revisit and modify requirements during the development stage. During the development stage,
Ionic Framework and Google Cloud (Firebase) were used. The Ionic Framework is an HTML5
mobile application development framework used for developing hybrid mobile applications
(Android, iOS, and Windows). On the other hand, the Firebase is a Platform as a Service
Google cloud server which is mainly used for hybrid applications deployment.
17
Chapter 3: Software Specification and Design
3.1 Introduction
Requirements elicitation for software is an important process in requirement engineering (Pa
& Zin 2011). This activity is occurring at the early phase of software development lifecycle
which includes meeting, observation, questionnaire, literature review, document analysis,
survey, prototyping and interviewing the customers (Moertini et al. 2014). The requirement
elicitation techniques assist in the gathering of a consistent and complete set of requirements
of a system (Maed 2006).
In this chapter, several numbers of requirement elicitation techniques and trade-off analysis
were discussed. Simultaneously, all the requirements necessary for the software development
process namely functional and non-functional requirements, assumptions, constraints and
dependencies. Also, the rationale and justify design decisions were evaluated, and finally the
system user interface and database designs were prototyped using wireframes, system
architecture, use case diagram, activity diagram, class diagram, deployment diagram and entity
relationship diagram (ERD).
3.2 Requirement Analyst
The requirements analysis is crucial for the success of any software development (Gupta 2013).
Requirements analysis in software development is a process that identifies the actions that are
needed to determine the requirements and conditions to develop new software. This process
involves all the stakeholders to gather and analyse requirements which should be measurable,
actionable, testable, and related to the defined requirements of the software design.
3.3 Requirement Specification
A software requirements specification is an extensive description of the planned of software to
be designed (Margaret 2007). The software requirements specification describes in detail what
the proposed software will render and how it supposed to perform. It lists out the functional
and non-functional requirements of the software.
3.3.1 Functional Requirements
A functional requirement describes a functionality of a software and its components (Gupta
2013). Functionality is defined as a set of software behaviour, inputs, and output (Moertini et
al. 2014). This section consists of the functional requirements for this software. The functional
18
requirements were gathered from the SMEs inform of observation, literature reviews, and
meeting and have been categorised as follows.
1. SMEs Purpose: The primary purpose of this SME cross-platform application (ShopMe) is
to allow SMEs to sell their products to the nearest customers. Also, the software will help
to generate more customer traffic, and revenue by increasing the presence of those SMEs
online.
FR001: The SMEs shall be able to manage their company in the application.
FR002: The SMEs shall be able to manage their product category in the application.
FR003: The SMEs shall be able to manage their product in the software.
FR004: The SMEs shall be able to view the products ordered by the customers.
FR005: The SMEs shall be able to communicate with their clients using inbuilt
message function of the application.
FR006: The SMEs shall be able to receive customer’s current location for item
delivery.
FR007: The SMEs shall be able to view their company ratings.
FR008: The SME shall be able to navigate to the customer’s location.
2. Customer Purpose: This application will assist customers to search, filter and order product
or service nearest to their location.
FR009: The customer shall be able to search company closer to their location.
FR010: The customer should be able to filter company by location.
FR011: The customer shall be able to add a company to the favourite list.
FR012: The customer shall be able to remove a company from the favourite list.
FR013: The customer shall be able to add a product to shopping cart.
FR014: The customer shall be able to remove a product from the shopping cart.
FR015: The customers shall be able to request delivery to their current location.
FR016: The customers shall be able to communicate with the SMEs using the
inbuilt message function.
FR017: The customers shall be able to write a review to the SMEs.
FR018: The customers shall be able to navigate to the SME’s location.
3. Automated Admin Purpose: The admin of this application is the software itself. The
functionality that shall render include:
FR019: The software shall automatically manage the users of the software.
19
FR020: The software shall be able to encrypt user password.
FR021: The software shall be able to generate a report for companies
weekly/monthly/annually.
3.3.2 Non-Functional Requirements
Non-functional requirements are set of precedent that can be used to judge the operation of
software, instead of a particular behaviour (Saad & Haryani 2016). In other words, non-
functional requirements are set of descriptions that describe how software should operate and
its limitations. Non-functional requirements include security, scalability, reliability,
availability, recoverability, usability, data integrity and manageability (Eriksson 2015). The
following are the lists of non-functional requirements for this application.
1. Security: The security non-functional requirements shall help in resisting all unauthorised,
unintended or accidental usage of the software. The requirements include.
NR001: The system shall be able to encrypt user password.
2. Scalability: NR002: The software shall be developed to accommodate increased workloads,
volumes and users.
3. Reliability: Reliability is a characteristic of any software component that it should always
perform based on its specifications.
NR003: The system shall be able to maintain its performance over time.
4. Availability: NR005: The software shall meet its availability target of 24/7 and a downtime
of 20 minutes.
5. Recoverability: The system shall meet its resilience target in the event of a failure.
NR004: The system shall be able to recover within an hour in the case of a disaster
or failure.
3.4 System Design
Requirements analysis and design phases in software development are challenging stages
because it is hard to transform real-world problems into confirmable software models
(Alhumaidan 2012). The emergence of the Unified Modelling Language (UML) has helped in
incorporating of some object-oriented analysis and design methods into a single unit modelling
language (Alhumaidan 2012). Because UML provides supporting tools which play a crucial
role in the development and implementation stages in the development of software. In this
project, UML Use Case Diagram, Activity Diagram, Class Diagram and Deployment Diagram
20
were adopted. Also, Wireframes, Entity Relationship Diagram and System Architecture were
used during the design phase of this project.
3.4.1 System Architecture
System architecture encompasses the design of the software, their patterns, behaviour,
collaborations and composition between its components (Rama et al. 2007). In other words,
Software architecture represents system components, their relationships to each other and the
environment (IEEE 2000). Figure 3.1 shows the system architecture of this project.
Figure 3.1: System Architecture
3.4.2 Entity Relationship Diagram
An entity relationship diagram (ERD) is a graphical representation of database tables and their
relationships to each other, usually used in software development projects regarding the
organisation of data within the databases or information systems (Khan & Saber 2010). (See
Figure 3.2).
21
Figure 3.2: Entity Relationship Diagram (ERD)
3.4.3 Use Case Diagram
A use case depicts a unit of functionality of a system. The essential goal of the use case diagram
is to aid development teams to visualise the functional requirements of software (Bell 2003),
including the relationship of actors (e.g. customer, SME admin) to primary processes, as well
as the relationships between different use cases.
Use Case Diagrams were used during requirements gathering phase of this project to represent
the functional requirements of the system graphically (See Figure 3.3). Use cases are useful for
writing acceptance test plans (Williams 2004). The testers can plan their testing by extracting
scenarios from the use cases.
22
Figure 3.3: Use Case Diagram
3.4.4 Activity Diagram
Activity diagram depicts the dynamic quality of software by demonstrating the flow of control
from activity to activity (Alhumaidan 2012; Smartdraw 2016). An activity describes an
operation on some class in the software that brings about change in the state of the software
(Smartdraw 2016). Usually, the activity diagram is used to model workflow of a system.
Figure 3.4 depicts how SMEs manages their company. At first, they need to login to the
software, then register their business, follow by adding product categories and products. Figure
3.5 illustrates how customers browse through the companies around them, then add a product
to shopping cart, followed by request delivery, or use a Google map to navigate to the SME's
shop. Finally, Figure 3.6 shows how a customer uses the system to favourite and review
company.
23
Figure 3.4: Manage Company Activity Diagram
Figure 3.5: Add to Cart Activity Diagram
24
Figure 3.6: Review and Favourite Company Activity Diagram
3.4.5 Class Diagram
The class diagram depicts how the different database tables interact with each other (Bell
2003). In other words, a class diagram shows the types of objects in a software and the
numerous kinds of relationships that exist among them (Williams 2004; Alhumaidan 2012).
Figure 3.7 shows the class diagram of this project where the upper component shows the class
name, the middle element contains the attributes of a class, and the lower component comprises
the class operations.
25
Figure 3.7: Class Diagram
3.4.6 Deployment Diagram
The deployment diagram depicts how software will be deployed to the cloud environment (Bell
2003). The main advantage of this diagram is that it shows how various components of the
software runs and communicate with each other (See Figure 3.8).
Since the diagram models the physical runtime, a system's production staff will make
considerable use of this diagram.
Figure 3.8: Deployment Diagram
26
3.4.7 Wireframe Design
Wireframing is a technique of planning software service at the structural level. Wireframes
were designed and used in the initial development process to establish the primary structure of
the pages before the main visual design and content are added.
Figure 3.9: Splash Screen (Wireframe)
Figure 3.10: Login (Wireframe)
27
Figure 3.11: Register (Wireframe)
Figure 3.12: Homepage (Wireframe)
Figure 3.13: Favourites (Wireframe)
Figure 3.14: Shopping List (Wireframe)
28
Figure 3.15: Messages (Wireframe)
Figure 3.16: Add Company (Wireframe)
Figure 3.17: Company Admin (Wireframe)
Figure 3.18: Company Customer
(Wireframe)
29
Figure 3.19: Product List (Wireframe)
Figure 3.20: Get Direction (Wireframe)
3.6 Summary
Functional requirements describe a functionality of a software and its components. Whereas,
non-functional requirements are precedent that can be used to judge the operation of software,
instead of a particular behaviour. In this chapter, several numbers of requirement elicitation
techniques and trade-off analysis were discussed. Simultaneously, all the requirements
necessary for the software development process namely functional and non-functional
requirements, assumptions, constraints and dependencies. Also, the rationale and justify design
decisions were evaluated, and finally the system user interface and database designs were
prototyped using wireframes, system architecture, use case diagram, activity diagram, class
diagram, deployment diagram and entity relationship diagram (ERD).
30
Chapter 4: Development and Implementation
4.1 Introduction
This chapter describes the implementation and evaluation of the designed models of the
software as depicted in Chapter 3 of this report. Section 4.2 provides technical information
about the implementation of the software, including development environment, development
platform, tools, cloud server used, and the different stages taken to meet the requirements (See
Chapter 3). Section 4.3 outlines the main problems faced, and the solutions adopted during the
development process.
4.2 System Implementation
System development and implementation is the process of defining how the software should
be designed, ensuring that the software is functional and used, ensuring that the software meets
the quality standard (Sirshar et al. 2015).
4.2.1 Development Environment
The appropriate integrated development environment (IDE) must be established to guarantee
that the implementation process of the application runs smoothly. Table 4.1 and Table 4.2
describes the hardware and software requirements of this software (ShopMe).
Table 4.1: Hardware Requirements
Hardware
Description
Memory (RAM)
2 GB or more
Hard Disk Space
At least 1 GB
Processor
Intel® Core i5, 2.30 GHz
Connectivity
Internet access
31
Table 4.2: Software Requirements
Software
Description
Operating System
Windows: Microsoft Windows 8.1 or higher
MacBook: macOS Sierra 9.0 or higher
Android: Android 3.0 Honeycomb or higher
iOS: iPhone iOS version 9.0 or higher
Windows Phone version 7.1 or higher
Database
Firebase Database version 3.14.0 or higher
Internet Browser
Google Chrome, Microsoft Edge, or Mozilla Firefox
Programming Language
Ionic Framework (HTML, SASS, AngularJS)
Integrated Development
Environment (IDE)
Microsoft Visual Studio Code
Cloud Environment
Google Firebase, Google Play Store, Apple App Store, and
Microsoft Windows App
4.2.3 Development Tools
4.2.3.1 Ionic Framework
To implement the proposed cross-platform software, Ionic Framework was selected. The Ionic
Framework is an open-source platform that is used to create hybrid mobile applications and
web application (Aarush & Abdul 2016). It is developed using AngularJS and Apache Cordova.
The Ionic framework supports developers with all the tools, components and functionalities
that were used in the native mobile development and web applications. The Ionic Framework
is platform independent since it uses web technologies like HyperText Markup Language
(HTML), Syntactically Cascading Stylesheet (SASS) and AngularJS. The development
process is quick, and developers have a direct access API with Cordova since it is open-source.
The principle advantage of Ionic Framework is that it is cross-platform and lets developers
write the same application once for different platforms. A fragment of the programming codes
for this software (ShopMe) can is depicted in Appendix 2.
4.2.3.2 HyperText Markup Language (HTML)
The HTML programming language is used to describe the formatting of text in a document
(Harrel & Harrel 2011). HTML is beneficial in the sense that it allows text to be formatted
according to its intent, especially as a header, content, footer and so on.
32
4.2.3.3 Syntactically Cascading Stylesheet (SASS)
Syntactically Awesome Stylesheet (SASS) is a Cascading Stylesheet (CSS) pre-processor,
which aid to reduce duplication with CSS and saves time. The SASS is more reliable and
efficient CSS that describes the style of pages, components and activity structurally
(Tutorialpoint 2017). SASS uses SASS and Sassy Cascading Stylesheet (SCSS) as extensions.
SCSS is a subset of SASS, but a superset of CSS syntax. It implies that every valid CSS style
sheet is also a valid SCSS.
4.2.3.4 AngularJS
AngularJS is an open-source JavaScript framework managed by Google and group of
developers which assist in implementing single page applications and now Ionic Framework
(Madhuri et al. 2015). AngularJS was designed to make development, testing and maintaining
of applications easier (Madhuri et al. 2015).
4.2.4 Development Platforms
Microsoft Windows 10 and Apple macOS Sierra 10 operating systems (OS) were chosen as
the platforms for the development of the ShopMe software. The fact that the software will be
running on multiple platforms, Visual Studio Code Integrated Development Environment
(IDE) was installed on both OS. Simultaneously, the Android Studio was installed on Windows
10 OS for running the Android platform, Xcode IDE was installed on the macOS because all
Ionic Framework iOS, macOS, tvOS and watchOS applications can only be built and signed
using Apple developed Xcode (Agarwal 2016). Google Chrome provides a mobile testing
feature on the Chrome, which was run to build and test other platforms including BlackBerry,
Windows, Nokia, Microsoft Lumia and web application.
4.2.5 Cloud Server and Database
Google Cloud Platform as a Service helps in providing servers, managing infrastructure and
configuring networks to a client quickly and cheaply (Refer to Chapter 2.7 of this report).
Google Firebase Service called Firebase was used as the backend database for this project.
Firebase provides the client with cross-platform (web and mobile) tools to develop high-quality
applications and grow their businesses (Magnani et al. 2017). Firebase comprises of integral
features that developers can use to fit their needs. It also provides fast accessing of stored data.
The platform tools are elementary to use and are easily integrated with the Ionic Framework.
Refer to Chapter 2.7 to see some numerous services rendered by firebase.
33
4.2.6 Some Ionic Framework Inbuilt Functions and Custom Functions
During the development stage of this software, numerous Ionic inbuilt functions and custom
functions were used to accomplish tasks. Some of those functions were discussed in this section
(See Figure 4.1 to 4.5).
Figure 4.1: Firebase Initialisation
The figure 4.1 above shows how the Firebase database was initialised in the application. The
firebase initialisation required the Google Firebase API key, authentication domain, database
URL, project identification key (project ID), and storage bucket, messaging ID. The API key
is a unique identifier of a user account in the Firebase Cloud server. Since a Google Cloud
users can host more than one projects on their server, there is a need for the developer to have
a unique ID for each of the project, database, and messaging features as shown in the Figure
above. From line 36 to 46 of Figure 4.1, it is checking the user state of the application. That is,
if the user is log in, send the user to the root page (homepage). If the user is not login, send the
user to login page.
34
Figure 4.2: Firebase class
Figure 4.2 shows the Firebase class. The signup function receives a user email address and
password for registration purpose. The Firebase inbuilt function shown on line 5, encrypt the
password and then stored both the encrypted password and email address to Firebase Database.
Other functions include sign in, log out, reset a user password, get logged in user details were
all part of the Firebase service class.
Figure 4.3: Firebase Query
35
Figure 4.3 shows how Firebase database query works. The first line on the diagram shows the
company selection statement from the Firebase. Simultaneously, the query also filters out the
companies that are not active. That is, it returns only the companies that their status is “active”.
Line 98 on Figure 4.3 shows how current user’s coordinate is used with the company’s
coordinate to calculate the distance (in kilometres) between them. See Figure 4.4 for user
location finder and Figure 4.5 for the distance algorithm function.
Figure 4.4: User location finder
Figure 4.4: Distance Algorithm Function
4.2.7 User Interface
Getting early feedback from stakeholders is essential to all software development projects
(Farebo & Rask 2015). Without prompt feedback from stakeholders of software, it is nearly
impossible to get acceptable solutions that meet all the requirements of the stakeholders
36
(Zaitsev et al. 2014). The user interface is argued to be the most crucial component of software
(Sridevi 2014). Poorly implementation of the interface poorly usually makes it difficult for
users to navigate through the application (Andreas 2012). Figures 4.6 to 4.19 shows the
designed user interface for this project (ShopMe).
Figure 4.6: UI (Login)
Figure 4.7: UI (Signup)
The login user interface (Figure 4.6) is the page that allows users to log into the application.
The page also allows the unregistered user to register by clicking on the register button. Also,
for the registered users who forgot their password to reset it. The signup page allows the
unregistered user to register to the application (See Figure 4.7).
37
Figure 4.8: UI (Home)
Figure 4.9: UI (Favourite)
Figure 4.8 shows the homepage of the application. From the homepage, a user location is
acquired by the application, and then returns the registered SME based on the nearest to the
user’s location. Figure 4.9 depicts how the users can add the company to their favourite page.
38
Figure 4.10: UI (Search Page)
Figure 4.11: UI:( Message)
Figure 4.10 shows how a user can filter the results set shown in Figure 4.8. The filtering allows
the user to select kilometre radius and keyword. The returned results set will be based on the
companies within the specified range and has the value of a tag relating to what the user inserted
Figure 4.11 shows the message page of the application.
39
Figure 4.12: UI (Favourite Page)
Figure 4.13: UI (Shopping List)
Figure 4.12 shows the favourite page. The page displays the list of favourited companies. The
shopping list page (Figure 4.13) illustrates the list of products a user added to his cart. At the
shopping list, a user can request a delivery or use Google map to navigate to the SME’s shop
by swiping the product right.
40
Figure 4.14: UI (Account Page)
Figure 4.15: UI (SME Page)
The account page links to various pages as shown in Figure 4.14. The pages include my
account, messages, contact, etc. Figure 4.15 displays the SME page which can only be
accessible by the SME admin for management.
41
Figure 4.16: UI (Manage Company Page)
Figure 4.17: UI (Add Product Page)
Figure 4.16 illustrates the SME admin panel. The admin panel is where the SMEs can update
their company information, add and update category, product, and delete their company if it is
not operational. Figure 4.17 shows how SME can add the product to their product collection.
42
Figure 4.18: UI (Get Direction)
Figure 4.19: UI (Filter by Category)
4.3 System Implementation Challenges
4.3.1 Main Problems Faced
At the course of building this application, some serious obstacles were encountered with the
Ionic Framework and Firebase. Though Ionic Framework is new because it was released in
2015 (Max 2015; Griffith 2017), and its built on Cordova and AngularJS, which are high
technologies. Below are the three top problems faced during the implementation stage of this
software.
i. File Chooser: File Chooser is an Ionic Framework component that allows users to opens
and chooses the file (e.g. Image) (Ionic Framework 2017a). In the SME registration
page, one of the requirement is to allow SMEs to upload or snap their logo. But Ionic
Framework provide only one library (File Chooser) to accomplish the image upload
functionality, but the biggest problem faced was that the File Chooser support only
Android platform (Ionic Framework 2017a). Since the project target cross-platform,
43
and the File Chooser does not work on any other platforms apart from the Android, that
makes it seriously challenging.
ii. Querying Firebase Database with multiple filters: The backend database for this project
is Google Firebase. During project development stage, some specific functionalities
required filtering the data from the database using more than one search parameter. An
example is when the user wants to search for a product and with a particular mile radius.
But the Firebase database does not support filtering database with a more than one
parameter (Keep Coding 2017; Hitch 2015). In other words, when searching the
Firebase database with more than one parameter, it will throw an error. This problem
was encounter when I was implementing the search page of this application, where the
customer will be able to search a product and as well narrow the mile radius (e.g. search
hot chocolate and within 2 miles’ radius).
iii. Building iOS application: The development process of the Ionic Framework iOS
platform was smooth. At first, the development environment was Windows 10 only,
but when testing stage approaches, the developer learned that Ionic Framework iOS
platform could only build on MacBook OS (Hirapara 2017; Ionic Framework 2017b;
Morony 2017), this was a serious setback for this project.
4.3.2 Solutions Adopted
The solutions to the problem were as follows.
1. File Chooser: The File Chooser problem was solved by replacing it with the Cordova
PhoneGap File Chooser plugin. Both the Ionic Framework and PhoneGap were built
on Cordova Framework; this helps in implementing PhoneGap’s plugin on the Ionic
Framework.
2. Querying Firebase Database with multiple filters: The querying Firebase database
problem was solved by implementing a custom function using AngularJS to help with
the filtering of the data retrieval from the Firebase.
3. Building iOS application: The problem of building iOS platform was solved by
purchasing of a new MacBook computer.
4.4 Summary
In this chapter, the software development environments, tools, platforms and programming
languages used were discussed in detail. Concurrently, the cloud server and database used for
44
the project deployment used was explained. Also, the user interfaces of the final product were
depicted in details. Finally, the biggest problems faced, and the solutions adopted during the
development stage were discussed.
45
Chapter 5: Testing and Results
5.1 Introduction
Software testing is the process of analysing a system functionality to identify the differences
between existing and required functionalities and to evaluate the features of the software
functionality (Williams 2006). The software testing was done throughout the whole
development process for this project. Different testing plans carried out include; beta and alpha
system testing. Other testing were unit testing, integration testing, functional and system
testing, regression testing and acceptance testing.
An alpha testing was administered on the system integration of all the components to ensure
that the required functionalities of the ShopMe software can be presented and tested.
Afterwards, a beta testing (user acceptance test) was carried out with the potential end users of
the software, namely the SMEs and customers. Both the alpha and beta testing were performed
with the aims of finding and fixing bugs and errors in the software.
5.2 Test Planning
A test plan describes the resource, scope, approach and schedule of proposed test activities
(Williams 2006). The test plan identifies the features to be tested, who will execute the testing
task, and finally any risks demanding contingency plans. Moreover, test cases were designed
with the expected set of inputs as a parameter, execution environments, and expected outputs
established for a specific objective, for example, to verify compliance with a precise
requirement.
5.2.1 Unit Testing
Unit testing is the testing of specific software or hardware units or sets of related units
(Williams 2006). The unit testing is based on white box testing techniques, where the testers
verify and validate that the code works as intended. On every piece of functionality
implemented in this software, a unit testing was performed to make sure that the functionality
works as expected. Figure 5.1 below shows how tester wrote a function that will upload a valid
image to firebase cloud storage. The function test if the picture is valid before uploading, if the
image is not valid, it will handle the error and exception by rejecting the image and then show
an error message to the user of what went wrong.
46
Figure 5.1: Unit Testing
5.2.2 Integration Testing
Integration test is the phase of software testing in which individual software components are
combined and tested to assess the collaboration between them (Daniel 2004; Williams 2006).
Just because the individual components work as a unit, that does not mean that they can operate
together when integrated. White and black box testing methods assist a tester to validates that
individual components work together when they are combined into a single element (See Table
5.4 to 5.11 below). The integration testing of this software takes input from the unit element
that has been unit tested, combined them, and then delivers as output the tested result.
5.2.3 Functional and System Testing
The role of a software tester in functional and system testing was to inspects the high-level
design and the client requirements to plan the various test cases to make sure that the
components of the software work as intended. The functional testing covers how well the
software executes the operations it is meant to achieve. These operations include user
comments, searches, data manipulation, business processes, integration, user interfaces. The
system testing involves testing the software in numerous environments to ensure the software
works in typical client situations with several versions of operating systems.
5.2.4 Acceptance Testing
Acceptance testing was carried out to determine whether the software satisfies its acceptance
conditions (the conditions the software must meet to be accepted by a client) and to allow the
customer to determine whether to accept the software.
47
5.2.5 Regression Testing
During the testing phases of this software, regression test cases were run. The regression testing
is selective retesting of software components to verify that changes have not caused unexpected
effects and that the software still conforms with its quantified requirements (Williams 2006).
5.2.6 Beta Testing
Beta testing was carried out at the end of each increment of the software implementation phase.
The aim of the beta testing in this project was to allow end users test the software to see if they
could encounter any error or bugs.
Table 5.1 below summarised the six (6) testing discussed in this chapter.
Table 5.1: Levels of Software Testing
Testing Type
Scope
Tester
Unit
Small unit of code or component
Programmer
Integration
Multiple components
Programmer
System
Complete software
Independent tester
Functional
Complete software
Independent tester
Acceptance
Complete software in client’s
environment
Client
Beta
Complete software in client’s
environment
Client
Regression
Any of the above
Programmer and Independent tester
5.3 Test Procedure
Beta testing was completed to validate the functionality of each requirement and how the
responsibilities of the target stakeholders can be accomplished using the software. Also, the
test procedure determined to acquire feedback through a software evaluation survey distributed
to the expected stakeholders with regards to the software’s usability. Before the testing plans
were executed, a software demonstration was conducted to illustration the functionalities of the
software. The testing team was then presented with a software evaluation to express their
responses on the developed software prototype. Afterward, the results from the end-user
acceptance testing were used to verify and validate the software regarding improvement and
adding some future enhancements, as well as the performance management and planning of
the software.
48
5.3.1 Test Suite
A test suite is a group of test cases that are proposed to be used to verify a system functionalities
and to show that they have some definite set of behaviours. Table 5.2 shows the test
participant’s role, whereas Table 5.3 depicts the test suite that was carried out during project
development lifecycle of this software.
Table 5.2: Test Participants Role
Test Participant
Number of Participants
Participant Role
Participant 1
5
SME Proprietor
Participant 2
12
Customer (Buyer)
Participant 3
1
Developer
Table 5.3: Test Suite
Test ID
Description
Requirement ID
Reviewer
Test Date
TS001
SME login and manages
their company
FR001
Participant 1
Participant 3
13/09/17
TS002
SME manages product
categories
FR002
Participant 1
Participant 3
13/09/17
TS003
SME manages their
product
FR003
Participant 1
Participant 3
13/09/17
TS004
Customer search for a
product and filter out the
results outside 2 miles’
radius
FR009, FR010
Participant 2
Participant 3
14/09/17
TS005
Customer communicate
with the SME via
message feature
FR005, FR016
Participant 1
Participant 2
Participant 3
14/09/17
TS006
Customer add a
company to favourite
list
FR011, FR012
Participant 2
Participant 3
14/09/17
TS007
Customer add a product
to cart
FR013, FR014
Participant 2
Participant 3
14/09/17
TS008
Customer navigate to
the SME’s shop
FR018
Participant 2
Participant 3
14/09/17
49
5.3.2 Test Report
The test report provides a detailed test case from the test suite (See Table 5.3). The test case
contains the test procedures, test data, expected result and actual result as shown in Table 5.4
to 5.11.
Table 5.4: Test Case TS001
Test Case ID
TS001
Test Case Summary
Does SME login and manages their company on the software
Prerequisites
SME must log into the application
Test Procedure
i. SME open the application
ii. Login to the application
iii. Click on the account icon on the homepage
iv. Click manage company or add a new company button
Test Data
SME username and password
SME company data (title, category, location, logo and tags)
Expected Result
i. The application should log in a valid SME.
ii. The application should allow the unregistered user to register.
iii. The application should allow SME register their company
iv. The application should allow registered SME update their SME
information.
Actual Result
The application logged an SME with valid credentials and
displayed an error message when the credentials were incorrect.
The application registered a user successfully. Subsequently,
display an error message when trying to register with an email
address that was already registered.
The SMEs were able to manage their companies or register a
new company on the application.
Status
Pass
Remark
The application loading speed was remarkable
Created by
Participant 3
Date
10/09/17
Tested by
Participant 1
Participant 3
Date
12/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, and Apple iPhone 7
Table 5.5: Test Case TS002
Test Case ID
TS002
50
Test Case Summary
SME manages product categories
Prerequisites
Test case TS001 has completed
Test Procedure
Click on manage category from company’s setting
Test Data
A unique category name
Expected Result
The application should add, update or delete company’s category
Actual Result
The application added, updated and deleted category successfully
Status
Pass
Remark
The application response time was remarkable
Created by
Participant 3
Date
10/09/17
Tested by
Participant 1
Participant 3
Date
12/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, iPad and Apple iPhone 7
Table 5.6: Test Case TS003
Test Case ID
TS003
Test Case Summary
SME manages their product
Prerequisites
Test case TS002 has completed
At least one category must exist
Test Procedure
Click on manage category from company’s setting
Select a registered category to add a product under it
Test Data
A unique product name
Expected Result
The application should add, update or delete company’s product
Actual Result
The application successfully added, updated and removed product
Status
Pass
51
Remark
Pass
Created by
Participant 3
Date
10/09/17
Tested by
Participant 1
Participant 3
Date
12/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, iPad and iPhone 7
Table 5.7: Test Case TS004
Test Case ID
TS004
Test Case Summary
Customer search for a product and filter out the results outside 2 miles’
radius
Prerequisites
Test case TS001 has completed
Test Procedure
i. Customer open the application
ii. Click on the search icon
Test Data
Search tags
Select mile radius
Expected Result
The application should return search results based on the search tags
and mile radius provided by the customer
Actual Result
The application filtered out the companies that do not comply with the
client's search criteria
Status
Pass
Remark
Pass
Created by
Participant 3
Date
10/09/17
Tested by
Participant 2
Participant 3
Date
13/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, iPad and iPhone
52
Table 5.8: Test Case TS005
Test Case ID
TS005
Test Case Summary
Customer communicate with the SME via message feature
Prerequisites
Test case TS001, TS002 and TS003 were completed
Test Procedure
i. A user opens the application
ii. Select a company
iii. Click send message
Test Data
Users share personal messages and location
Expected Result
The application should send a message and user location.
Actual Result
The customer sent a message and coordinates to the SME
The SME received the client's message and location
The SME replied to customer’s message
The client received the SME’s message
Status
Pass
Remark
The application response time was remarkable
Created by
Participant 3
Date
10/09/17
Tested by
Participant 2
Participant 3
Date
14/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, iPad and iPhone
Table 5.9: Test Case TS006
Test Case ID
TS006
Test Case Summary
Customer add a company to favourite list
Prerequisites
Test case TS001 has completed
Test Procedure
i. Customer open the application
ii. Swipe right a company from homepage
Test Data
The application execution
53
Expected Result
The application should add a company to the favourite list on swiping
right
Actual Result
The application added a company to the favourite list on swiping right
Status
Pass
Remark
The application response time was outstanding
Created by
Participant 3
Date
10/09/17
Tested by
Participant 2
Participant 3
Date
14/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, iPad and iPhone
Table 5.10: Test Case TS007
Test Case ID
TS007
Test Case Summary
Customer add product to cart
Prerequisites
Test case TS001 has completed
Test Procedure
iii. Customer open the application
iv. Swipe right a company from homepage
Test Data
The application execution
Expected Result
The application should remove a company from the favourite list on
swiping right
Actual Result
The application removed a company from the favourite list on swiping
right
Status
Pass
Remark
The application loading and response time were extraordinary
Created by
Participant 3
Date
10/09/17
54
Tested by
Participant 2
Participant 3
Date
14/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, iPad and iPhone
Table 5.11: Test Case TS008
Test Case ID
TS008
Test Case Summary
Customer navigate to the SME’s shop
Prerequisites
Test case TS001, TS002 and TS003 were completed
Test Procedure
i. A user opens the application
ii. Select a company
iii. Click on get direction
Test Data
The application execution
Expected Result
The application should show the nearest path and the navigation to the
SME’s shop
Actual Result
The application opened a map navigation app installed on the device,
or it opened the map navigation on a browser when a map app is not
installed on the device.
Status
Pass
Remark
The application response time was incredible
Created by
Participant 3
Date
10/09/17
Tested by
Participant 2
Participant 3
Date
14/09/17
Test Environment
Samsung Galaxy S5, Google Chrome, iPad and iPhone
There are few fields to notice in all the test cases above. Firstly, notice the prerequisites field.
The prerequisites define what must happen before the test case can run correctly. Secondly, the
55
expected result is what the tester is expecting before executing the testing. Lastly, the actual
result is the output of the test case after a successful execution.
All the test cases above were carried out using both alpha and beta testing. The screenshots of
the software’s user-interfaces were depicted in chapter four of this paper (See Section 4.2.7).
5.3.3 Error Reports
An error report is a list of errors or bugs found by testing team while testing the software. The
Table 5.12 shows the list of errors acquired during the testing stage of this project.
Table 5.12: Error Report
ID
Date
Function
Defect Summary
Comment
ER001
26/08/17
File Chooser
The Ionic Framework file
chooser function for selecting an
image from device does not work
on the iOS platform
The file chooser
support only
android platform
ER002
27/08/17
Firebase Storage
The firebase storage does not
store image as jpeg or any other
image extension
ER003
30/08/17
Tab Bar
The Ionic Tab Bar size differ by
platform.
In Android
platform, it is
showing the tab
bar differently
The errors were solved in as follows:
i. The solution to the file chooser can be found in Section 4.3.2 of this report.
ii. The firebase storage error was fixed by converting the images to blob datatype.
iii. Tab Bar error was corrected by automating the resizing of the tab bar based on the
user’s platform.
5.4 Summary
In this chapter, different testing plans were executed ranging from unit testing, integration
testing, functional and system testing, acceptance testing, regression and beta testing. The unit
testing focuses on testing of specific software or hardware units or sets of related units. The
integration testing takes combines the two or more unit testing to assess the collaboration
between them. The functional testing covers how well the software executes the operations it
is meant to achieve. Whereas, the acceptance testing determines whether the software satisfies
its acceptance conditions. Finally, several errors were encountered and fixed during test cases
56
execution processes. Whenever an error or bug is fixed, a regression testing was performed to
ensure that the update does not affect other components of the software.
57
Chapter 6: Critical Evaluation
6.1 Introduction
This chapter will critically evaluate the objectives achieved and the future enhancement. Also,
the lesson learned on this project based on the different programming languages, development
methodologies, development tools and testing were critically evaluated.
6.2 Software Evaluation Methodology
The software evaluation method used for this project was a Criteria-based assessment. The
Criteria-based assessment is a quantitative assessment of the software system regarding
maintainability, usability, and sustainability (Darling-Hammond et al. 2013; Biffl et al. 2006).
The methodology informs important decisions on some component of the software for
improvement and evolution. The principal objective of the criteria-based assessment is to verify
whether if a software conforms to numerous qualities that were presumed (Dunn et al. 2002).
The more expected result is satisfied, the more sustainable the software. Table 6.1 shows how
the assessment criteria of this project software were grouped and the result at each group.
Table 6.1: Criteria-Based Assessment
Criterion
Sub-criterion
Results
Usability
Documentation
A well-organised documentation was carried out by the
software.
Understandability
The software was developed and deployed on
the various platforms (Android, iPhone, iPad,
etc.).
The actors of the software are SME and the
customer.
Development
The Software targeted cross-platform
(Android, iOS and Windows).
Ionic Framework was adopted for the project
implementation.
Visual Studio Code Integrated Development
Environment was used for the project
development.
58
Deployment
The software database was deployed on Google
Cloud Server.
Learnability
A user guide was developed for the software.
Sustainability
and
maintainability
Identity
The software is titled “ShopMe.
License
The following libraries were licensed by their
providers during the development stage.
Google Firebase
Google Map
Google Navigation
Accessibility
The software shall be published to the following stores
for customer and SME to download.
Android Play Store.
Windows App Store
Apple App Store.
Portability
The software is portable on all the targeted platform.
Testability
The following testing plans were carried out on the
software:
Unit Testing
Integrated Testing
Functional Testing
End-to-end Testing
Acceptance Testing and
Security Testing
6.3 Achievements
Even though there were some deviations from the project plan (See Appendix 1) due to
requirements prioritising during the development process, but the project objectives (See
Section 1.4) were successfully achieved. Example of such deviation include, on the project
plan (See Appendix 1), it was designed to accommodate the SME to be able to register their
product on the software at the first release (increment one). But the functionality was shifted
to the second increment because the developer realised that implementing the map navigation
from user location to the SME location and vice versa is more important at that stage. Also, at
59
the SME registration page, part of the registration requirement is to allow SMEs to upload or
snap their logo, but due to problems faced by the upload image plugin (See Section 4.3), the
developer swapped the upload functionality with another and continued with the remaining
features.
The following objectives were successfully achieved:
i. Carried out requirement gathering for the proposed software solution.
ii. Review the literature concerning the SMEs uptake and experience of the similar
platforms (if any).
iii. Design and implementation of the SME software solution.
iv. Test the software solution before production.
v. Deploy the software database to cloud.
6.4 Product Evaluation and Future Enhancement
6.4.1 Product Evaluation
The product evaluation was based on the Criteria-based Assessment (See Section 6.2)
approach. The plan spelt out three distinct categories for software evaluation namely: usability,
sustainability and maintainability. The evaluation processes of this project were based on
observation, rather than opinion, and it contains the pass or fail criteria for measurement results.
Three groups of users (developers, evaluators, and end-users) were assigned to evaluate the
software with the goal of producing results that are accepted as identical and repeatable. The
process of the evaluation was categorised into five phases: requirements assessment analysis,
evaluation specification, evaluation design and plan, evaluation execution and reporting stage.
From the evaluator’s evaluation, three users from each reviewer’s categories (that is,
developers, evaluators, and end-users) carried out testing to identify whether if the software
met usability, sustainability and maintainability requirements. The testing results were
summarised in the Table 6.2 which highlight the testing outcomes based on the set of evaluation
requirements in Table 6.1.
Table 6.2: Criteria-Based Evaluation Results
ID
Criteria
Comment
Remark
60
1
Documentation
A well-organised documentation was carried out by
the software.
Pass
2
Understandability
The software successfully built and run on
iPhone and Android
There are distinct features for SME and
customer
Pass
3
Development
Ionic Framework was used on Visual
Studio Code IDE for the development of the
software.
The software runs on iPhone and Android,
but not yet on Windows.
Pass
4
Deployment
The database was deployed on Google Firebase.
Hence, the platforms were deployed to their various
cloud server.
Pass
5
Learnability
The user guide was integrated into the software for
learnability purposes.
Pass
6
Identity
The software is titled “ShopMe”, which is
the only software with this name in Nigeria.
Pass
7
Licence
The following licensed platforms were used in the
software:
i. Google Firebase
ii. Google Map and Navigation
iii. Google Cloud Server
Pass
8
Accessibility
All the other platforms are ready for publication.
Pass
9
Portability
The software is working as intended on all the
platforms
Pass
10
Testability
The software was tested on all the platforms
Pass
6.4.2 Future Enhancement
There is a need for future improvement on ShopMe. The following set of requirements outline
the features need to be added to the software.
i. The customer shall be able to pay for a product on the platform using either Visa, Master
Card, or PayPal.
ii. The SMEs shall be able to register more than one company.
iii. The SME shall be able to choose product price or auction.
iv. Software deployment to the cloud.
6.5 Lessons Learned
The lessons learned is an essential factor of this project, and it serves numerous purposes.
Capturing lessons learned occurred all through the project lifecycle to make sure that all
61
information are documented conveniently and accurately. This section discussed not only what
went wrong during the project lifecycle, but also what went well during the project
development and how related projects may benefit from the lesson learned. The lessons learned
were gathered from both realised and unrealised project risks analysis as well as via observation
on a couple of the project stakeholders. The lessons learned are categorised by project
knowledge area. These knowledge areas include chosen methodology, development
framework, and quality management, and time management.
6.5.1 Chosen Methodology
The agile, incremental model was selected for this project (See Section 2.5). The agile
methodology works well for this project due to the unclear requirements at the beginning of
the project. The ability of the agile model to revisit the stages of development effectively
improves project productivity (Szalvay 2004) is what made it ideal for this project. The overall
project goals and objectives were set at the beginning of the project, but the requirement
gathering stage was a continued process throughout the project lifecycle. Even though agile
lack emphasis on requirements gathering, design and documentation phases of the software.
But learning and adoption of agile, incremental approach work well for this project because
the software development life cycle for this project was divided into increments, and each
increment touches on each of the traditional stages of development namely requirements,
design, implementation, testing, and evolution (Alshamrani & Abdullah 2015).
6.5.2 Development Framework
The primary key lesson learned for this project is the researched, learning, and implementation
of Ionic Framework on this project. The Ionic Framework speed up the development process
and produces a quality solution as compared with native development. The native development
requires programmers to know a different set of programming language skills. But with the
emergence of the Ionic Framework which is open-source, it helps to create a hybrid mobile
application using web technologies, then compiles it to different platforms.
6.5.3 Software Quality Management
The primary focus of the software quality management is to meet user requirements and to
attempt to exceed client expectations (ISO 9000 n.d.). The quality management involves
defining suitable quality procedures and standards and ensuring that they are followed.
Researched and adoption of software quality management helps in making sure that the
62
organisational structure, procedures, responsibilities, resources and processes for
implementing this project runs smoothly.
6.5.4 Time Management
Time management focuses on the planning, task prioritising, scheduling, and monitoring stages
of software development. Indebt research on time management tools such as Gantt chart ABC
analysis, and the urgency/importance grid helps in the planning of prioritising of tasks in the
design and implementation stages of this software development. Even though at some points,
there were some deviations in the project plan due to some unavoidable circumstances, but still
the time management helps in switching those deviated tasks with different tasks.
6.6 Summary
In this chapter, the developed software was critically evaluated. The software evaluation
methodology adopted was a criteria-based assessment. Whereas, criteria-based assessment is a
quantitative assessment of the software system regarding maintainability, usability, and
sustainability. The software usability, maintainability, and sustainability were critically
evaluated. Though there were some deviations from the project plan, yet the project objectives
were achieved. Also, the future works and lessons learned were discussed in details.
63
Chapter 7: Conclusions
The advances in information systems and communication technologies allow enterprises to
achieve greater levels of productivity, service delivery, and efficiency. In Nigeria, in spite of
the efforts of government and other stakeholders to achieve economic growth and development
through sustainable SMEs, the rate of survival of SMEs in their first year is less than 5%. One
of the ways to address the survival of SMEs is through the adoption of information systems to
their business. For SMEs to survive in the modern market, there is a need for them to participate
in the deployment of their activities to an information system, this will help the SMEs generate
more revenue and customer traffic.
In this paper, past research papers and journals on SME were reviewed with the aim of
developing a cross-platform software. As stated, the past research has concentrated more on
the adoption of an information system, cloud services, native programming languages, cross-
platform frameworks, software development methodologies, software development success
factors, success measurement among other technical aspects of cross-platform design and
implementation. A cross-platform software solution is a user-friendly mobile application
targeted Android, iOS, and Windows operating system with the purpose of providing
information processing capability to support SME concerning organisational strategy,
management analysis, operations, and decision-making functions. The software will allow
SMEs to publish their products and services on the platform. Also, the software will enable
users to search and view products, request delivery or navigate to the SME’s location.
Furthermore, the software automatically generates a report on weekly, monthly, or annually
for SME decision-making and management analysis.
Waterfall, Agile, and Spiral software methodologies were reviewed in this project with the aim
of choosing an appropriate model that can help in achieving a successful result of a project
when measured regarding cost, client happiness, meeting deadlines, and minimising
expenditures. But, Agile was chosen due to its capacity to revisit the stages of development
effectively improves project productivity. Even though spiral model also offers revisiting
stages, but operationalising it difficult.
Indebt research on the numerous programming languages and software platforms was carried
out. Since the software targeted cross-platform mobile applications, it was learned that to
develop the Android application, Java programming language skills are essential, to develop
an iOS app, Swift or Objective-C is required, Windows app needs C-Sharp. But platforms such
64
as PhoneGap and Ionic Framework provide the best solution for the cross-platform
development since they are using web technologies such as HTML and CSS to develop the
application, then runs it on multiple platforms. Furthermore, Ionic Framework was chosen for
this project development because, the framework is open-source, and it uses AngularJS
technology which makes it easier to communicate to the server side of the application, such as
Google Firebase.
Cloud computing services were reviewed with the goals of selecting the best cloud server to
deploy the software. Cloud computing is categorised in as Software as a Service (SaaS),
Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). Cloud providers such as
Amazon Web Service, Microsoft Azure, and Google Cloud Platform were critically evaluated,
and the Google Cloud was chosen for this project because it offers integral features such as
testing, writing code and debugging which a developer can use during the development and
testing stages. Firebase also provides fast accessing of stored data security. Furthermore, the
Google Firebase Cloud server provide additional services such as cloud messaging, firebase
analytics, and firebase authentication, which were used in this project for integrating the
management analysis, decision-making, and reporting functionalities.
During the development phase, several problems were encountered. These issues include file
chooser library, advanced firebase database querying (that is, for querying the database with
more than one filter options), and building the iOS application on iPhone. These problems
triggered some deviations from leading project development plan, but later, the problems were
solved.
Different testing plans were executed with the aim of finding and fixing bugs and errors. The
testing performed includes unit testing, integration testing, functional and system testing,
acceptance testing, regression and beta testing. The unit testing emphasis on testing of specific
units or sets of related units. The integration testing takes individual unit testing and combines
them to assess the collaboration between them. The functional testing covers how well the
software executes the operations it is meant to achieve. The acceptance testing determines
whether the software satisfies its acceptance conditions. Finally, several errors were
encountered and fixed during test cases execution processes. Whenever an error or bug is fixed,
a regression testing was performed to ensure that the update does not affect other components
of the software.
65
The software was evaluated using criteria-based assessment. Whereas, criteria-based
assessment is a quantitative assessment of the software system regarding maintainability,
usability, and sustainability. Upon completing the software evaluation, the result set shows that
the software’s requirements are satisfied and ready for publication. Though there were some
deviations from the project plan, yet the project objectives were achieved. Also, the future
works and lessons learned were discussed in details.
Implementing a software for SMEs in Nigeria will surely change how the SMEs operates.
Successful implementation of the software requires getting a lot of SMEs to register their
product on the platform. Conclusively, even though there are numerous factors influencing the
adoption of ICT in SMEs in Nigeria, but with this developed software, it will allow SMEs to
increase their sells. The software will also assist the customers to search for a product or service
closest to their location. Furthermore, the software will help to generate more customers’
traffic, and revenue by increasing the presence of those SMEs online to many customers on the
platform who does not know the existence of those SMEs around them.
66
References
Aarush, G. & Abdul, G., 2016. Hybrid Application Development using Ionic Framework
& AngularJS. International Journal of Innovative Research in Computer Science &
Technology (IJIRCST), 4(2). Available at:
http://www.ijircst.org/DOC/7_IRP471_2e3be55d0-6fda-45f1-878d-1a4f4120fa10.pdf
[Accessed August 22, 2017].
Adebayo, O., Balogun, O. & Kareem, T., 2013. An Investigative Study Of The Factors
Affecting The Adoption Of ICT In Small And Medium Scale Enterprises In Oyo State,
Nigeria. International Journal of Business and Management Invention ISSN (Online,
pp.23198028. Available at:
https://pdfs.semanticscholar.org/3b5f/9f747ecaf1b8e36b6ea9832c4be41d7b2d60.pdf?_g
a=2.135379641.981685979.1502722523-305945981.1502722523 [Accessed August 14,
2017].
Adobe PhoneGap, 2016. About. Adobe PhoneGap. Available at: https://phonegap.com/about/
[Accessed August 22, 2017].
Agarwal, S., 2016. Do I need to have a MacBook to create iOS apps on Ionic-2? - Quora.
Quora. Available at: https://www.quora.com/Do-I-need-to-have-a-MacBook-to-create-
iOS-apps-on-Ionic-2 [Accessed September 4, 2017].
Agwu, O., 2014. Issues, Challenges and Prospects of Small and Medium Scale Enterprises
(SMEs) in Port-Harcourt City, European Journal of Sustainable Development, 3(1),
pp.101114. Available at: http://www.ecsdev.org/images/V3N1/agwu 101-114.pdf.
Alabama Supercomputer Center, 2015. Software Development Methodologies. Alabama
Supercomputer Center, pp.19. Available at:
https://www.asc.edu/sites/default/files/org_sections/HPC/documents/sw_devel_methods
.pdf [Accessed August 15, 2017].
Alhumaidan, F., 2012. A Critical Analysis and Treatment of Important Unified Modelling
Language Diagrams Enhancing Modeling Power. Intelligent Information Management, 4,
pp.231237. Available at: http://dx.doi.org/10.4236/iim.2012.45034 [Accessed August
31, 2017].
Alshamrani, A. & Abdullah, B., 2015. A Comparison Between Three SDLC Models Waterfall
67
Model, Spiral Model, and Incremental/Iterative Model. IJCSI International Journal of
Computer Science Issue, 12(1), pp.1694784. Available at:
https://www.ijcsi.org/papers/IJCSI-12-1-1-106-111.pdf [Accessed August 18, 2017].
Alshamrani, A. & Bahattab, A., 2015. A Comparison Between Three SDLC Models Waterfall
Model, Spiral Model, and Incremental/Iterative Model. Available at:
https://www.ijcsi.org/papers/IJCSI-12-1-1-106-111.pdf [Accessed August 18, 2017].
Andrade, P, Paulo, R, and Albuquerque, B, 2015. CROSS-PLATFORM APP A
COMPARATIVE STUDY. International Journal of Computer Science & Information
Technology (IJCSIT), 7(1). Available at:
https://pdfs.semanticscholar.org/c28d/223fe09cb97b34dd2f07335315edd874f6cb.pdf
[Accessed August 20, 2017].
Andreas, W., 2012. Wireframe: A Great Way to Start Development Projects. International
Journal of Computer Science and Information Technology Research, 2(2), pp.415426.
Available at: https://www.infoq.com/articles/wireframes-start-development-projects
[Accessed September 2, 2017].
Anga, R., 2014. DETERMINANTS OF SMALL AND MEDIUM SCALE ENTERPRISES IN
NIGERIA Rose Mary Anga Department of Economics, University of Jos, Jos. , 12(1),
pp.140148.
Apprehend, 2016. IaaS, PaaS, SaaS (Explained and Compared). Apprehend. Available at:
https://apprenda.com/library/paas/iaas-paas-saas-explained-compared/ [Accessed August
20, 2017].
Apulu, I. & Ige, E., 2011. Are Nigeria SMEs Effectively Utilizing ICT? International Journal
of Business and Management, 6(6), pp.207215.
Automation Services & Basware Corporation, 2014. SaaS (Software as a Service) Based
Business Model: Cost Analysis. International Journal of Management and Commerce
Innovations (IJMCI), 1(1), pp.610. Available at:
https://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact
=8&ved=0ahUKEwivp6yC86HJAhXLXD4KHVWdC3MQFggiMAA&url=http://www.
researchpublish.com/download.php?file=SaaS (Software as a Service) based Business
Model Cost Analyst.
68
Awad, M., 2005. A Comparison between Agile and Traditional Software Development
Methodologies. The University of Western Australia, 1, pp.1300.
Awosan, K., 2014. Factor Analysis of the Adoption of Cloud Computing In Nigeria. African
Journal of Computing & ICT African Journal of Computing & ICT Reference Format:
R.K. Awosan Nigeria Afr J. of Comp & ICT, 7(1), pp.3342. Available at: www.ajocict.net
[Accessed August 18, 2017].
Baloyi, J., 2010. An analysis of constraints facing smallholder farmers in the Agribusiness
value chain: A case study of farmers in the Limpopo Province. Available at:
http://www.repository.up.ac.za/bitstream/handle/2263/29038/dissertation.pdf?sequence=
1 [Accessed August 14, 2017].
Basil, A., 2005. Small and medium enterprises (SMEs) in Nigeria: problems and prospects.
Thesis, 2, p.114.
Bell, D., 2003. UML basics: An introduction to the Unified Modeling Language. Available at:
http://www.therationaledge.com/content/jun_03/f_umlintro_db.jsp [Accessed August 31,
2017].
Biffl, S. et al., 2006. Value-Based Software Engineering, Berlin, Heidelberg: Springer.
Available at: https://link.springer.com/content/pdf/10.1007%2F3-540-29263-2.pdf
[Accessed September 6, 2017].
Cassavamillers, 2016. AN OVERVIEW OF SMALL & MEDIUM ENTERPRISES (SMEs)
IN NIGERIA | Cassavamillers. Cassavamillers. Available at:
http://cassavamillers.com/studies-and-papers/an-overview-of-small-and-medium-
enterprises-smes-in-nigeria [Accessed June 8, 2017].
Chatzoglou, P, Theriou, N, Dimitriadis, E, and Aggelides, V, 2007. Software project
management and planning: the case of the Greek IT sector. Int. J. Applied Systemic Studies
J. Applied Systemic Studies Systems Journal European Journal of Information Systems
International Journal of Project Management Information and Software Technology
Journal, xx(x). Available at: http://abd.teikav.edu.gr/articles_th/software.pdf [Accessed
September 2, 2017].
cmarix, 2017. 14 Benefits of using Firebase. cmarix. Available at: http://www.cmarix.com/14-
Benefits-of-using-Firebase [Accessed August 20, 2017].
69
Daniel, G., 2004. Software Quality Assurance from theory to implementation, England:
Pearson Education Limited. Available at: http://desy.lecturer.pens.ac.id/Manajemen
Kualitas Perangkat Lunak/ebook/Software Quality Assurance From Theory to
Implementation.pdf [Accessed September 13, 2017].
Danielsson, Jakob, 2014. A comparison study of cross-platform developing tools for iPhone
devices. Available at: http://www.diva-
portal.org/smash/get/diva2:781688/FULLTEXT01.pdf [Accessed August 20, 2017].
Darling-Hammond, L. et al., 2013. Criteria for High-Quality Assessment. Available at:
https://edpolicy.stanford.edu/sites/default/files/publications/criteria-higher-quality-
assessment_2.pdf [Accessed September 6, 2017].
Darren, L. & Conrad, L., 2009. Entrepreneurship & Small Business Management in The
Hospitality Industry,
Davitt, P., 2016. SaaS, PaaS and IaaS: What are all the risks? Arrow ESC E-Magazine.
Available at: http://ecsnamagazine.arrow.com/saas-paas-and-iaas-what-you-and-your-
customers-need-to-know-about-the-risks/ [Accessed May 11, 2017].
Duan, Y, Mullins, R, Hamblin, D, Stanek, S, Sroka, H, Machado, V & Aroujo, J 2002.
Addressing ICTs skill challenges in SMEs: insights from three country investigations.
Journal of European Industrial Training, 26(9), pp.430441. Available at:
http://www.emeraldinsight.com/doi/10.1108/03090590210451524 [Accessed August 14,
2017].
Dunn, L., Morgan, C. & Parry, S., 2002. Seeking quality in criterion-referenced assessment.
Available at: http://www.leeds.ac.uk/educol/documents/00002257.htm [Accessed
September 6, 2017].
Eriksson, U., 2015. The difference between functional and non-functional requirements |
ReQtest. ReqTest. Available at: http://reqtest.com/requirements-blog/understanding-the-
difference-between-functional-and-non-functional-requirements/ [Accessed August 29,
2017].
Farebo, N.S. & Rask, M., 2015. User-Centered Design in Agile software development for in-
house enterprise tools User-Centered Design in Agile development. Available at:
https://www.diva-portal.org/smash/get/diva2:878385/FULLTEXT01.pdf [Accessed
70
September 2, 2017].
Fatai, A., 2016. SMALL & MEDIUM SCALE ENTERPRISES IN NIGERIA: THE
PROBLEMS AND PROSPECTS. The Collegiate Journal of Economics. Available at:
https://www.academia.edu/1406990/SMALL_AND_MEDIUM_SCALE_ENTERPRISE
S_IN_NIGERIA_THE_PROBLEMS_AND_PROSPECTS [Accessed May 16, 2017].
Fraser, A., 2015. Opportunities for Small, Medium Sized Enterprises (SMEs). Available at:
http://www.bl.uk/aboutus/supplying/smes/ [Accessed June 8, 2017].
Griffith, C., 2017. Mobile app development with Ionic 2 : cross-platform apps with Ionic,
Angular, and Cordova, Available at
https://books.google.co.uk/books?id=G6WkDgAAQBAJ&pg=PT10&lpg=PT10&dq=io
nic+framework+first+release+date+2015&source=bl&ots=DH35CkMwn6&sig=jIIxbhb
_A_FhpcEMRWij9NbXIqE&hl=en&sa=X&ved=0ahUKEwij1LjVo4rWAhXkbZoKHfv
FBHwQ6AEIXTAJ [Accessed September 4, 2017].
Guangyuan, P. & Wooju, K., 2013. Introduction to iPad Application Development with
PhoneGap. International Journal of Innovation, Management and Technology, 4(1).
Available at: http://www.ijimt.org/papers/354-D10307.pdf [Accessed August 22, 2017].
Gupta, S., 2013. ONLINE SHOPPING CART APPLICATION. Available at:
http://library.ndsu.edu/tools/dspace/load/?file=/repository/bitstream/handle/10365/23054
/Swati_Online Shopping Cart Application.pdf?sequence=1 [Accessed August 29, 2017].
Haris, M. & Jan, Fahad, & Mustafa, Tasleem & Shakeel, Muhammad., 2012. Cloud
Computing: A General User’s Perceptions and Security Issues at Universities of
Faisalabad, Pakistan. IJCSI International Journal of Computer Science Issues, 9(5).
Available at:
https://pdfs.semanticscholar.org/7bb9/2677c152246cc74eb0478c9619cfff690bcd.pdf
[Accessed August 18, 2017].
Harrel, W. & Harrel, W., 2011. HTML, CSS and JavaScript mobile development for dummies,
Haynes, G., 2014. IaaS, PaaS, SaaS, & the Cloud 101 | George Haynes | Pulse | LinkedIn.
Linkedin. Available at: https://www.linkedin.com/pulse/20140907071547-305726885-
iaas-pass-saas-the-cloud-101 [Accessed August 19, 2017].
Hirapara, A., 2017. How to build app IOS by ionic framework on windows - Quora. Quora.
71
Available at: https://www.quora.com/How-do-I-to-build-app-IOS-by-ionic-framework-
on-windows [Accessed September 5, 2017].
Hitch, 2015. Firebase API changed Retrieving Data - Firebase. Hitch. Available at:
https://www.hitchhq.com/firebase/activities/57596edd8e2e411000b8d550 [Accessed
September 5, 2017].
IEEE, 2000. IEEE Recommended Practice for Architectural Description of Software-Intensive
Systems IEEE-SA Standards Board. IEEE Std 1471-2000. Available at:
http://cabibbo.dia.uniroma3.it/ids/altrui/ieee1471.pdf [Accessed September 2, 2017].
Ionic Framework, 2017a. Ionic Native - File Chooser. Ionic Framework. Available at:
https://ionicframework.com/docs/native/file-chooser/ [Accessed September 5, 2017].
Ionic Framework, 2017b. Ionic Resources | Windows Platform Setup. Ionic Framework.
Available at: https://ionicframework.com/docs/developer-resources/platform-
setup/windows-setup.html [Accessed September 5, 2017].
ISO 9000, Quality Management Principles, Available at:
https://www.iso.org/files/live/sites/isoorg/files/archive/pdf/en/qmp_2012.pdf [Accessed
September 11, 2017].
Kavitha, K., 2014. Study on Cloud Computing Model and its Benefits, Challenges.
International Journal of Innovative Research in Computer & Communication
Engineering (An ISO Certified Organization), 2(1). Available at: www.ijircce.com
[Accessed August 20, 2017].
Keep Coding, 2017. Firebase order by a child with multiple keys - firebase. Keep Coding.
Available at:
http://php.wekeepcoding.com/article/10208956/Firebase+order+by+child+with+multipl
e+keys [Accessed September 5, 2017].
Kelly, W., 2007. Disadvantages of Agile Development | 101 Ways. 101 Ways. Available at:
http://www.101ways.com/disadvantages-of-agile-development/ [Accessed August 18,
2017].
Khan, R.S. & Saber, M., 2010. Design of a Hospital-Based Database System (A Case Study of
BIRDEM). International Journal of Computer Science and Engineering, 2(8), pp.2616
2621. Available at: http://www.enggjournals.com/ijcse/doc/IJCSE10-02-08-050.pdf
72
[Accessed September 2, 2017].
Kulkarni, G, Karen, G, & Smith, A, 2011. Cloud Computing-Software as Service "
International Journal of Computer Trends Off Kalewadi Road, 17(2). Available at:
http://www.internationaljournalssrg.org [Accessed August 20, 2017].
Kuyoro, O., Ibikunle, F. & Awodele, O., 2011. Cloud Computing Security Issues and
Challenges. International Journal of Computer Networks, (5), pp.2011247. Available at:
https://www.researchgate.net/profile/Kresimir_Popovic/publication/224162841_Cloud_
computing_security_issues_and_challenges/links/5694ae1308ae820ff072d1ab.pdf
[Accessed August 19, 2017].
Ladokun, I., Osunwole, O. & Olaoye, B., 2013. Information and Communication Technology
in Small and Medium Enterprises: Factors affecting the Adoption and use of ICT in
Nigeria. International Journal of Academic Research in Economics and Management
Sciences, 2(6), pp.22263624. Available at: www.hrmars.com/journals/v2-i6/443
[Accessed August 14, 2017].
Liviu, M., 2014. Comparative study on software development methodologies. Database
Systems Journal, (3). Available at: http://www.dbjournal.ro/archive/17/17_4.pdf
[Accessed August 15, 2017].
Madhuri, J., Sawant, R. & Deshmukh, A., 2015. Single Page Application using AngularJS.
International Journal of Computer Science & Information Technologies, 6(3). Available
at: http://ijcsit.com/docs/Volume 6/vol6issue03/ijcsit20150603195.pdf [Accessed
September 4, 2017].
Maed, N., 2006. Requirements Elicitation Introduction. Software Engineering Institute, 1(1).
Available at: www.sei.cmu.edu [Accessed August 29, 2017].
Magnani, A., Tilwani, J. & Suvarna, H., 2017. Online Table Booking and Food Ordering
System. IJSRD -International Journal for Scientific Research & Development|,
5(01online), pp.2321613. Available at:
http://www.ijsrd.com/articles/IJSRDV5I10561.pdf [Accessed August 20, 2017].
Margaret, R., 2007. What is software requirements specification (SRS)? - Definition from
WhatIs.com. Search Software Quality. Available at:
http://searchsoftwarequality.techtarget.com/definition/software-requirements-
73
specification [Accessed August 29, 2017].
Max, S., 2015. Ionic and Angular 2 | The Official Ionic Blog. Ionic Framework. Available at:
http://blog.ionic.io/angular-2-ionic/ [Accessed September 4, 2017].
Mccormick, M., 2012. Waterfall vs Agile Methodology. Available at:
http://www.mccormickpcs.com/images/Waterfall_vs_Agile_Methodology.pdf
[Accessed August 16, 2017].
Moertini, V., Heriyanto, S. & Nugroho, C., 2014. REQUIREMENT ANALYSIS METHOD
OF E-COMMERCE WEBSITES DEVELOPMENT FOR SMALL- MEDIUM
ENTERPRISES, CASE STUDY: INDONESIA. International Journal of Software
Engineering & Applications (IJSEA), 5(2). Available at:
http://airccse.org/journal/ijsea/papers/5214ijsea02.pdf [Accessed August 29, 2017].
Morony, J., 2017. The Challenges of Developing iOS Applications on a PC | Joshmorony -
Build Mobile Apps with HTML5. Joshmorony. Available at:
https://www.joshmorony.com/the-challenges-of-developing-ios-applications-on-a-pc/
[Accessed September 5, 2017].
Norbert, H., 2015. Cross Platform Development Possibilities and drawbacks of the Xamarin
platform DI (FH) Norbert Haberl. FH Joanneum | University of Applied Sciences, 1(1).
Available at:
https://static1.squarespace.com/static/559921a3e4b02c1d7480f8f4/t/585c64e29de4bb6fe
48c5d8e/1482450148424/Haberl.pdf [Accessed August 22, 2017].
Nouel, Gide, 2010. Study of the difficulties encountered by SMEs in Trade Defence
Investigations and possible solutions -Final Report. Available at:
http://trade.ec.europa.eu/doclib/docs/2011/february/tradoc_147475.pdf [Accessed
August 11, 2017].
Olalekan, T., Yusuf, P. & Dansu, F., 2013. SMES, BUSINESS RISKS AND
SUSTAINABILITY IN NIGERIA. European Journal of Business and Social Sciences,
2(29), pp.7694. Available at: http://www.ejbss.com/recent.aspx [Accessed July 24,
2017].
Olatunji, O., 2015. The Impact of Information Communication Technology on Small and
Medium Scale Enterprise Productivity. Vaasan University of Applied Science. Available
74
at:
https://publications.theseus.fi/bitstream/handle/10024/94173/My_Thesis_Copy.pdf?sequ
ence=1 [Accessed May 16, 2017].
Osterweil, L.J., 2011. A Process Programmer Looks at the Spiral Model: A Tribute to the Deep
Insights of Barry W. Boehm. Int J Software Informatics International Journal of Software
and Informatics Int J Software Informatics, 55(33), pp.457474. Available at:
http://www.ijsi.org [Accessed September 3, 2017].
Pa, C. & Zin, M., 2011. Requirement Elicitation: Identifying the Communication Challenges
between Developer and Customer. International Journal on New Computer Architectures
and Their Applications (IJNCAA), 1(2), p.13.
Pasanen, M., 2003. MSE Growth Strategies .A Comparison of Young and Long-Lived Firms.
, (Laukkanen), pp.120.
Popoola, A., 2016. SMALL AND MEDIUM SCALE ENTERPRISE IN NIGERIA. Available
at:
https://www.academia.edu/2571052/SMALL_AND_MEDIUM_SCALE_ENTERPRISE
_IN_NIGERIA [Accessed May 16, 2017].
Rama, A., Govindarajulu, P., & Naidu, M., 2007. A Process Model for Software Architecture.
IJCSNS International Journal of Computer Science & Network Security, 7(4). Available
at: http://paper.ijcsns.org/07_book/200704/20070439.pdf [Accessed September 2, 2017].
Ravikumar, P. & Gopalakrishnan, R., 2012. Software as a Service (SaaS) Testing Challenges-
An In-depth Analysis. IJCSI International Journal of Computer Science Issues, 9(3).
Available at: https://www.ijcsi.org/papers/IJCSI-9-3-3-506-510.pdf [Accessed August
20, 2017].
Riemenschneider, C., Hardgrave, B. & Davis, F., 2002. Explaining software developer
acceptance of methodologies: a comparison of five theoretical models. IEEE Transactions
on Software Engineering, 28(12), pp.11351145. Available at:
http://ieeexplore.ieee.org/document/1158287/ [Accessed August 16, 2017].
Saad, A. & Haryani, H., 2016. The Most Important Functional & Non-Functional
Requirements of Knowledge Sharing System at Public Academic Institutions: A Case
Study. Lecture Notes on Software Engineering, 4(2). Available at:
75
http://www.lnse.org/vol4/242-IT084.pdf [Accessed August 29, 2017].
Sanni, O., 2009. Small Scale Industry : Problems of Establishing Small Business Enterprise in
Nigeria Case Study : Alahteef Nigeria. Business Economics.
Sasankar, A. & Chavan, V., 2011. SWOT Analysis of Software Development Process Models.
IJCSI International Journal of Computer Science Issue, 8(5). Available at:
https://www.ijcsi.org/papers/IJCSI-8-5-3-390-399.pdf [Accessed August 18, 2017].
Sirshar, M., Mateen, Q. & Marwah, 2015. Software Quality Assurance in Internet of Things.
International Journal of Computer Applications, 109(9), pp.9758887. Available at:
http://research.ijcaonline.org/volume109/number9/pxc3900964.pdf [Accessed
September 3, 2017].
Smartdraw, 2016. UML Diagram - Everything You Need to Know About UML Diagrams.
SmartDraw. Available at: https://www.smartdraw.com/uml-diagram/ [Accessed August
31, 2017].
Sridevi, S., 2014. User Interface Design. International Journal of Computer Science &
Information Technology Research, 2(2), pp.415426.
StatCounter, 2017. Mobile & tablet operating system market share in Nigeria | StatCounter
Global Stats. StatCounter. Available at: http://gs.statcounter.com/os-market-
share/mobile-tablet/nigeria/#monthly-200901-201709 [Accessed September 6, 2017].
Szalvay, V., 2004. An Introduction to Agile Software Development. Available at:
http://www.danube.com [Accessed August 15, 2017].
Terungwa, A., 2011. An empirical evaluation of small and medium enterprises equity
investment scheme in Nigeria. , 3(September), pp.7990.
Thakare, B. et al., 2015. State of art approaches using PhoneGap for Portability of Mobile
Apps. International Journal of Advanced Research in Computer and Communication
Engineering, 4(2). Available at: https://www.ijarcce.com/upload/2015/february-
15/IJARCCE2B.pdf [Accessed August 22, 2017].
Tutorialpoint, 2017. SASS Tutorial, Available at:
https://www.tutorialspoint.com/sass/sass_tutorial.pdf [Accessed September 3, 2017].
Uche, C. & Ojiakor, C., 2013. THE SMALL & MEDIUM SCALE INDUSTRIES EQUITY
76
INVESTMENT SCHEME IN NIGERIA: A CRITIQUE. African Review of Money
Finance and Banking, pp.99118. Available at: https://www.jstor.org/stable/41410528
[Accessed August 12, 2017].
Unesco, 2010. The role of small-scale enterprises in Nigeria. The Collegiate Journal of
Economics. Available at: http://www.unesco-nigeriatve.org/teaching
materials/bam/business administration & management/semester1/BAM 111 Intro to
Business I/week14.html [Accessed May 16, 2017].
Ward, M. & Rhodes, C., 2014. Small businesses and the UK economy. Standard Note:
SN/EP/6078, House of . Available at http://www.myveryownblog.co.uk/wp-
content/uploads/2015/01/sme_stats_2014.pdf.
Williams, L., 2004. An Introduction to the Unified Modeling Language, Available at
http://agile.csc.ncsu.edu/SEMaterials/UMLOverview.pdf [Accessed August 31, 2017].
Williams, L., 2006. Testing Overview and Black-Box Testing Techniques, Available at
http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf [Accessed September 13, 2017].
Ya’u, A. & Zambuk, F., 2011. Cloud Computing: Solution to ICT in Higher Education in
Nigeria. Advances in Applied Science Research, 2(6), pp.364369. Available at:
https://pdfs.semanticscholar.org/64b8/d6085c8041f6cd7d449471221b4d01631b46.pdf
[Accessed August 18, 2017].
Zaitsev, A., Gal, U. & Tan, B., 2014. Boundary Objects and Change in Agile Projects.
Available at:
https://www.researchgate.net/profile/Anna_Zaitsev/publication/281585622_Boundary_
Objects_and_Change_in_Agile_Projects/links/55eeb5d708ae0af8ee1a2925/Boundary-
Objects-and-Change-in-Agile-Projects.pdf [Accessed September 2, 2017].
77
Appendix
Appendix 1: Gantt Chart
Project Management (Increment 1)
Project Management (Increment 2)
Project Management (Increment 3)
78
Appendix 2: Project Source Code
The source code for this project was submitted on a zip file separately. To use run the
application on your computer, the following steps need to be adopted.
1. Install NodeJS on your computer.
2. Download the source code from the zip file to your computer.
3. Open your command line and navigate to the project folder.
4. Run the following command "ionic serve". Please note, do not use the quote.
ResearchGate has not been able to resolve any citations for this publication.
Research Proposal
Full-text available
Online Shopping is a web based application intended for online retailers. The main objective of this application is to make it interactive and its ease of use. It would make searching, viewing and selection of a product easier. It contains a sophisticated search engine for user's to search for products specific to their needs. The search engine provides an easy and convenient way to search for products where a user can Search for a product interactively and the search engine would refine the products available based on the user’s input. The user can then view the complete specification of each product. They can also view the product reviews and also write their own reviews. The application also doesn't repeat the same product with different prices. The main emphasis lies in providing a user-friendly search engine for effectively showing the desired results and its auto-generating QR payment system. family and our friends for all the support and encouragement.
Article
Full-text available
mall and Medium Scale Enterprises (SMEs) are critical to the Economic Growth and Development of Nigeria. However, this can only be possible in a risk free operating environment. This study examines the relationship between business risks and the sustainability of SMEs in Nigeria. SMEs face a number of risks that requires objective and conscious risk management efforts. Primary data were generated from fifty (50) SMEs in Lagos State. Data analysis and hypotheses testing were done with the use of Chi-square and descriptive statistics. The result revealed that standard risk management strategy by SMEs will result to their sustainability. It was recommended that entrepreneurs should consider risk management as an integral part of business management. Also, regulators should insist on minimum corporate governance standards for SMEs.
Technical Report
Full-text available
Based on the changing demands of today’s workforce, advances in other nations, and original analysis, this report provides a set of criteria for high-quality student assessments. These criteria can be used by assessment developers, policymakers, and educators as they work to create and adopt assessments that promote deeper learning of 21stcentury skills that students need to succeed in today’s knowledge-based economy.
Article
Full-text available
The study examines the impact of information and communication technology on the performance of small and medium scale enterprises (SMEs) SMEs in Abuja. Over the years, there have been existent of information technology in Abuja and so many large firms adopted it in their business operation but unfortunately, the small and medium scale enterprises in Abuja do fully adopt information technology. The study used descriptive survey designed and employed the use of a questionnaire administered to the respondents who are the owners of SMEs. The population of the study was is 26000 (SEMDAN, 2013) and this was reduced to 393 (as required sample size) using Taro Yamane formula. The study adopted simple random sampling technique to administer the questionnaire. E-view software statistical software package and multiple regressions were used to analyse the data. The finding revealed that there was a significant relationship between information technology and performance of SMEs in Abuja. This implies that there was a positive significant relationship between information technology services and performance of SMEs and also there was a significant relationship between information technology user skills and performance of SMEs in Abuja. It was concluded that from the findings there is a significant relationship between information technology infrastructure and performance of SMEs in Abuja. The study recommended that SMEs firm should continually use information and communication technology in terms of the services, infrastructure and user skills since it contributes significantly to the performance of SMEs in terms of increase in sales, increases in patronage, market share and output. The SMEs firms that are not applying the concept of information and communication technology should do so to improve their performance now that every activity of the business are communicated or transacted toward online. 56
Article
Full-text available
The paper discussed Issues, Challenges and Prospects of Small and Medium ScaleEnterprises (SMEs) in Port-HarcourtCity, Nigeria.This was informedbythe high rate ofunemployment in the society and the poor performance of SMEs in employmentgeneration. While the research questions addressed theextent to which poorfinancing,inadequate social infrastructures, lack of managerial skills and multiple taxation constitutemajor challenges in the performance of SMEsbetween October 2012 and November 2013,it assumes that government intervention throughthe provision of financial assistance,social infrastructures and favorable taxation policies will reverse the trend.The paperadopted descriptive research design using 120 randomly selectedregistered operators ofSMEs in Port-Harcourt City.Data collected were analyzed using descriptivestatistics whileformulated hypotheses were tested using z-test. Results from the data analysis indicatedthatpoor financing, inadequate social infrastructures, lack of managerial skills and multipletaxation were major challenges confronting SMEs in Port-Harcourt City,thusrecommended: provision of soft loans to SMEs operators,government guaranteeing oflong-term loans to SMEs operators, establishment of SMEsfunding agency,public/privatesector partnership in infrastructural provision,capacity building for SMEs operators andprovision of tax incentives for SMEs operators.Keywords: Small and Medium Scale Enterprises,SME operators,Port-Harcourt City,Nigeria.
Article
Full-text available
Cloud computing is a set of IT services that are provided to a customer over a network on a leased basis and with the ability to scale up or down their service requirements. Usually cloud computing services are delivered by a third party provider who owns the infrastructure. It advantages to mention but a few include scalability, resilience, flexibility, efficiency and outsourcing non-core activities. Cloud computing offers an innovative business model for organizations to adopt IT services without upfront investment. Despite the potential gains achieved from the cloud computing, the organizations are slow in accepting it due to security issues and challenges associated with it. Security is one of the major issues which hamper the growth of cloud. The idea of handing over important data to another company is worrisome; such that the consumers need to be vigilant in understanding the risks of data breaches in this new environment. This paper introduces a detailed analysis of the cloud computing security issues and challenges focusing on the cloud computing types and the service delivery types.
Chapter
The Unified Modeling Language (UML) is a graphical language for communicating design specifications for software, currently very popular for communicating design specifications for software and, in particular, for logical database designs via class diagrams. The object-oriented software development community created UML to meet the special needs of describing object-oriented software design. UML has grown into a standard for the design of digital systems in general. The similarity between UML and the entity–relationship (ER) model is shown through some common examples in this chapter, including ternary relationships and generalization. UML activity diagrams are used to specify the activities and flow of control in processes. There are a number of different types of UML diagrams serving various purposes. The class and the activity diagram types are particularly useful for discussing database design issues. UML class diagrams capture the structural aspects found in database schemas. UML activity diagrams facilitate discussion on the dynamic processes involved in database design. This chapter is an overview of the syntax and semantics of the UML class and activity diagram constructs used in this book. These same concepts are useful for planning, documenting, discussing and implementing databases. UML activity diagrams are similar in purpose to flow charts. Processes are partitioned into constituent activities along with control flow specifications. This chapter is organized into three main sections. The first section presents class diagram notation, along with examples. The next section covers activity diagram notation, along with illustrative examples. Finally, the last section concludes with a few tips for UML usage.
Article
Small businesses are the backbone of the tourism and hospitality industry and, depending on which statistics one uses, represent somewhere between 75 to 95 percent of all firms globally in this sector. The number of entrepreneurs has dramatically and uniformly increased globally over the last ten years. Divided into four sections, Entrepreneurship and Small Business Management in the Hospitality Industry takes an intuitive step-bystep progression through each stage of the entrepreneurial process: context, theoretical perspectives and definitions; Concept to reality; The business plan; Growth and the future. Ideal for students at any level, the chapters of this book invite you to ponder upon your reading through a series of 'reflective practice' activities. These, along with case studies, clearly defined chapter objectives, reflections, role-play activities and experiential exercises, allow you to both think actively about themes, concepts and issues and then apply them to a number of suggested scenarios. Perfect preparation for the up-and-coming entrepreneur!