You are on page 1of 6

ISBN 978-967-5770-64-7

Software Analysis for Agents of Things (AoT) Applications

Anas M. Mzahm Mohd Sharifuddin Ahmad Alicia Y. C. Tang Azhana Ahmad


College of Graduate Studies College of CS & IT College of CS & IT College of CS & IT
Universiti Tenaga Nasional Universiti Tenaga Nasional Universiti Tenaga Nasional Universiti Tenaga Nasional
Kajang, Malaysia Kajang, Malaysia Kajang, Malaysia Kajang, Malaysia
anas1982mm@outlook.com sharif@uniten.edu.my aliciat@uniten.edu.my azhana@uniten.edu.my

Abstract—The Agents of Things is an extension of the Internet types. Section IV presents and discusses the results from the
of Things concept in which objects or things are embedded software analysis. Section V concludes the paper.
with self-reasoning intelligent software agents to provide value-
added services to humans. However, a particular difficulty in II. SOFTWARE DEFINITION
designing intelligent things for the Agents of Things The computer program is defined as an instruction
implementation is to determine the level of reasoning ability
structured in special ways that performs a specific task to
that corresponds to the functions of the things. To achieve this
goal, we need to find an optimal match of hardware
solve a particular problem [3], [4], [5], [6], [7]. A software is
configuration with the software abilities that intelligently a set of programs that is used to manipulate the computer
perform the functions of the things. In this paper, we analyze hardware and peripherals to make use of them for different
different software to identify their spectrum in optimizing self- purposes [4], [5], [7], [8], [9]. We categorize the computer
reasoning intelligent software for the things. The result of this software into two main types, system software and
analysis is a software spectrum that is organized in terms of application software [3], [5], [9]. The interaction between
complexity and sophistication. We discuss the analytical computer hardware and computer software (system and
process to arrive at the spectrum. application software) is represented in Figure 1 [3]:

Keywords-component; Internet of Things; Agents of Things;


Hardware Analysis; Software Analysis

I. INTRODUCTION
There is a common phrase that says “the need is the
mother of all inventions”. Because of this phrase, humanity
advanced from living in caves to living in the digital world.
The method humanity uses to achieve all its great inventions
is by research. For example, through research, we conduct an
extensive analysis on the Internet of Things (IoT) concept.
We then identify challenges of the concept and propose a
solution represented by the concept of Agents of Things
Figure 1. The interaction between computer hardware and software
(AoT) to mitigate some of these challenges [1].
A particular issue in the AoT implementation is to
determine the level of reasoning ability that corresponds to III. SOFTWARE TYPES
the functions of the things. To achieve our goal, we need to
examine the hardware configurations that can be The computer software is classified into two main
accommodated by the different kinds of software to be categories, which are system software and application
implemented by the AoT concept. We do so by initially software [8]. Each one of these main categories includes
conducting an analysis on various computing hardware, the many subcategories of software. Some of these subcategories
outcome of which is represented by a hardware spectrum [2]. work as supporting software such as the device drivers for
In this paper, we conduct a software analysis to examine the the system software. Other subcategories are classified as
types of software that can be run in various hardware independent categories in the main application software
configurations. Finally, the outcomes from these two category such as programming and business software [9].
analyses are used to create an optimal model of things in the Figure 2 shows the main software categories.
AoT concept.
This paper presents the work-in-progress of our research
in AoT. We organize the paper as follows: Section II defines
the software. Section III lists and analyzes the software

13
ISBN 978-967-5770-64-7

the operating system is crucial. A special software was


introduced which was called the device driver software. A
device driver is a type of software produced by a hardware
manufacturer to allow the operating system to identify and
use the hardware sufficiently [11]. It allows the operating
system to operate the device to its maximum capabilities.
3) Utility software:
Utility software represent the outer layer of the system
software. This type of software is usually provided by
Figure 2. Main software categories software and hardware providers. It performs some specific
tasks related to the computer operation in general. It
specifically maintain the integrity of the operating system,
A. System software data and applications by providing protection, backup or
The system software represents the connection between other services such as data compression [4]. Moreover, some
the computer hardware and user application software. The of these software are responsible for monitoring, analyzing
main purpose for this type of software is to use, control and and controlling the overall performance of the computer or
manage the computer hardware resources, to serve and the operating system in general [4].
benefits the computer users in the best way. The system It is a logical thing to consider device drivers as a part or
software includes three subcategories as shown in Figure 3, a subcategory of the utility software. However, due to the
which is: nature of this type of software it is far more important to be
categorized as a stand-alone category.
B. Application software
Application software represent the final layer of the
computer that has direct interaction with users. It is
developed from one or more software combined to do
specific functions for the benefits of users [3], [5]. This type
of software makes the computer useful for everyday tasks [3]
Figure 3. System software subcategories and users spend most of the time running their applications
on the computers [8]. The range of the application software
1) Operating system: covers almost all aspects of human lives [8]. However, we
The operating system represents the general-purpose shed some light on a few major types of application software
software that runs, controls and manipulates the main as shown in Figure 4.
resources of the computer hardware, such as Processor,
Memory, etc. It creates a virtual environment that helps users
to utilize these resources and run the applications. Examples
of operating systems are Microsoft Windows, UNIX and
Apple OSX.
In the early days of the computer industry, computer
manufacturers provide system applications for their
hardware. However, after IBM launched the OS 360 in mid-
60s [10] and made it compatible with different hardware
providers, it unknowingly started a new era of computer Figure 4. Application software subcategories
evolution, when computer hardware providers became
independent from computer software providers. This created 1) Entertainment software
a problem for some software providers, they needed an Entertainment software represent one of the fastest
additional software to make the system software identify and growing applications in the computer application industry
work with different hardware. Therefore, a new type of [4]. This type of application includes all types of software
software was introduced, which is the device drivers. developed to amuse and entertain computer users. It includes
2) Device driver software: all the video and audio players, photo albums and galleries.
After the new millennia, the advancement in hardware However, the most important entertainment applications are
technology witnessed a major revolution. A new type of represented by video games. The market share for video
hardware device was introduced and it was designed to be games is estimated between 80 - 100 billion US dollars in
added to the main board of the computer separately [11], 2015 [12], [13]. Examples of entertainment software include
such as graphics cards, sounds cards, and network cards. these kinds of applications such as, Windows Media
Different companies manufacture these devices and Player™, Power DVD™ and VLC™ for video player
introduced them to the market long after the release of applications and Winamp™ and I-Tones™ for audio player
operating systems. Therefore, the need for a software to applications. For video games, we mention Call of Duty for
identify and manage the interface between these devices and computers and Angry Birds for tablets and mobile devices

14
ISBN 978-967-5770-64-7

and they are just two examples from hundreds of thousands operations, small sizes and low costs are incorporated in
of examples in this category. many household devices around us, such as microwaves,
2) Educational software TVs and cars. In general, these devices are controlled by on-
Educational software are a type of application that is board hardware computing unit with read only memory (to
designed and used for academic and educational purposes execute the program stored in the internal memory). These
only. This kind of software is widely used in universities and devices use embedded software designed to run on the
educational institutes to help students complete their hardware to do specific functions to benefit the users of the
assignments [4]. There are many important educational product. The operations and functions provided by
software in the market such as Math Lab for simulating embedded software are restricted to perform the designed
engineering and science experiments, programming algorithms without the capability to be updated or changed in
algorithms and calculating advance numerical equations. the future. Embedded software can be found in many
SPSS is widely used for statistical analysis and in social consumer products such as the timers in microwave ovens,
science. Endnote is used in academic and research fields to washing machines and television control systems [7].
manage and organize the references for researchers. These 7) Programming software
are few examples of educational software available in the Programming software represent the most effective tool
market. in software lifecycle. They give the means to the
3) Business software programmer to create, modify or develop system software or
Business software represent an important field of application software. They consist of three different levels,
computer software application. They include applications which are machine language, assembly language and higher-
that run and manage the daily operations of businesses. The level language as shown in Figure 5 [4].
business applications range from managing inventory,
organize payroll lists, accounting, etc. One of the most
reliable applications in accounting is called SAGE [4]. It is
important to mention that the business software for large
corporations and enterprises have evolved to include all the
required software in one large system called management
information system (MIS) [7].
4) Industrial systems software
Industrial software are a set of applications, programs
and information related to industrial and manufacturing areas Figure 5. Programming language levels
such as construction, mining, chemical processing, oil and
gas production [14]. Industrial software specialize in control The machine language represents the connection between
and manage all the required operations to manufacture the computer hardware and the assembly language. It is
products. They also manage the supporting systems that help classified as a low-level computer language. It is formed
or are involved in product manufacturing, such as defining from binary numbers (0, 1) and directly recognizable by the
the properties and calculating dimensions of steel structures, computer processor without a translator and can be directly
determining and pinpointing the best location to drill a hole executed [4]. The assembly language on the other hand,
in a steel beam. Aegis Industrial is one of the leading represents the connection between the machine language and
companies that provide industrial software [14]. the higher-level language. It represents the first attempt to
5) General purpose software give programming language a clear structure. It groups the
The general purpose software are a type of application machine language bits in a certain form and given predefined
for general-purpose use. This type of applications is very names [4].
popular among personal computer users. They include all the Finally, the higher-level language, which represents the
software that perform the common information processing, top level computer language, is a user-friendly language
such as word processors, spreadsheets, database management formed from phrases and words adapted from the natural
systems and basic graphic editing software. This kind of language [4]. This level of computer language went through
software is used in many applications such as in the home, many development and improvement phases. It branched
academic, business or industrial fields [9]. This kind of into many subcategories, styles and paradigms. Therefore,
software is formed from many different software but we only review the important programming paradigms that
grouped under one suit or package. One of the most popular we think create a benchmark through the computer
software packages is the Microsoft Office Suit. Furthermore, development lifecycle.
some software suits include extra software, such as e-mail a) Software programming paradigms
agent and groupware or messenger to support the The software paradigms represent the frameworks that
communication and collaboration and improve productivity every programmer can choose to adopt during software
[9]. design. These paradigms support different programming
6) Embedded software languages, styles and capabilities. The major programming
Embedded software are software that reside in products. paradigms are imperative, declarative, functional, object-
The advancement in technology represented by complex oriented, logic, symbolic and abstractive [15]. However, the

15
ISBN 978-967-5770-64-7

functional and object-oriented paradigms can be represented  Logic


as a part of the declarative paradigm. Similarly, the symbolic The logic programming paradigm is similar to declarative
paradigm can be classified under the abstractive paradigm. paradigm in stating the program element and leaving the
Therefore, the four major paradigms used to classify the execution sequence to the language itself [15], [16].
software are imperative, declarative, logic and abstractive. However, it is far more advanced from the declarative
 Imperative paradigm. It uses formal logic to solve a problem by defining
The imperative paradigm is one of the earliest paradigms facts using axioms and rules to implicate new facts
used to design and build software. This style is based on the (proposed facts) and theorem which represent the goal that
hardwired design of early computers. It is designed to follow the program must achieve by using the facts and rules [15].
a sequence of steps to implement the program. It uses a set of  Abstractive
statement to change the program state, similar to the natural The abstractive paradigm, sometimes called symbolic
language concept when it uses an expression of a command paradigm, is a programming style in which a program has the
to take an action. Therefore, a program designed with this ability to manipulate its program’s internal formula and
kind of paradigm has a set of commands that must be components like a data [3].
executed sequentially. The best example of a programming An abstractive program is distinguished by its ability to
language that uses the imperative paradigm is the assembly incorporate smaller parts of other paradigms. It enables a
language [15], [16]. Subsequently, the imperative style complicated process that in turn develops another
improved and divided into segments. These segments are sophisticated process. Because of this ability, the program
called from within the main program to be used during the can modify and change itself to seek an effective and optimal
execution. This development results in the creation of performance. This ability makes the program appear to have
procedures. a learning ability, which makes it suitable for Artificial
 Declarative Intelligence applications. The best languages that support
The declarative paradigm is a programming style in abstractive paradigm are Lisp and Prolog.
which the elements of a program are defined without stating We choose to mention only four paradigms because we
the execution sequence [15], [16]. The benefit of this style is focus on the working principles and the characteristics of the
to focus on accomplishing the goal, and leave how to paradigms. The four mentioned paradigms have completely
accomplish it on the language implementation [15], [16]. different characteristics and borders for each paradigm are
Unlike the imperative style where a program focuses on the easily distinguishable. However, many researchers classify
algorithmic steps to achieve the goal, declarative paradigms the paradigms by using different criteria, such as
incorporate many programming styles such as functions, programming languages, execution methods and
objects and logic. programming styles. An example of another classification,
The declarative paradigm combines its characteristics which has been mentioned by Wooldridge [17], about new
with the characteristics of imperative and logical paradigms. paradigm called the post-declarative paradigm includes all
Figure 6 shows the characteristics distribution of declarative the characteristics of declarative paradigm and the intelligent
programming paradigm. characteristics of the logical paradigm.
b) Software evolution lifecycle
The lifecycle of the software we described supplements
the software lifecycle in software engineering. We are taking
a general approach about the software lifecycle by shedding
some light on the relationship between the program
languages and other types of software, namely system
software and application software.
Computers are used to build applications for the benefits
Figure 6. Characteristics distribution of declarative programming of users in general. Therefore, despite their types, software
paradigm must be built by programming languages. The lifecycle of
software starts from a programing language used to build an
At the top of the wave, programming languages such as application. However, there is also a need for software to run
Haskell (for pure function) and Smalltalk (for pure objective) and manage applications and their data. Therefore, the
represent the pure characteristics of declarative paradigm. operating system is also built by a programming language.
However, moving down towards one of the ends, the Figure 7 shows the software lifecycle in general.
programming languages start to incorporate more and more
characteristics of imperative or logic paradigms.
Programming languages such as database query languages,
SQL, support procedural or functional styles, while other
languages, such as C++, incorporate more than one style like
function, object and logic at the same time, which means that
they combine three paradigms together.

16
ISBN 978-967-5770-64-7

As shown in the figure, the inverted triangle is divided


vertically into three software categories, which are
applications, operating systems and supporting software. It is
also divided horizontally into four segments, which represent
the levels of program complexity, i.e., the software
sophistication and ability. Since the software are not useful
without proper hardware to run on, the hardware capabilities
are crucial on the final outcome of this analysis.
Starting from the bottom of the inverted triangle, we find
Figure 7. Software common lifecycle here software that is used with very limited hardware
resources, such as a Radio Frequency Identification sensor
From Figure 7, we can see that the software lifecycle (RFID). Due to hardware limitation, the software type at this
follow a certain pattern. This pattern starts from a level is an application only with low programming ability. It
programming language used to build an operating system. can perform primitive logical representation, such as
Then, applications are built and run on the operating system. selections and loops. Moreover, it is most likely to be
The software lifecycle has its own updating lifecycle, which hardwired and a non-programmable software.
follows the software engineering lifecycle. Results from new Moving up, we find software that have more
improvements in programming languages, operating systems programming abilities with devices of limited hardware
and applications and the effect of aged software lacking new capabilities, such as sensor nodes. They are formed from
features lead to the production of new and better application and operating system software. Usually,
programming languages, which are used to build new application software at this level are programmable and can
operating systems and applications. For an example of this be changed based on user demands. They are also able to
lifecycle, we start with the C++ programming language. perform advanced logical operations, such as multiple
When C++ was introduced in the beginning of the 70s, it was selection, loops and functions. On the other hand, the
used to build many operating systems from UNIX to operating system software is hardwired and cannot be
Microsoft Windows in the 70s until mid-90s. It was also changed. It is only used to manage and control the hardware
used to build the applications for their operating systems. internal operation.
Subsequently, it started aging and new features were Moving up further, we find software that can be run on
required to build better operating systems and applications. hardware devices with considerable capabilities, such as
Therefore, new programming languages were introduced and micro-controllers. At this level, the software are formed from
included improved features and characteristics, such as Java, applications, operating systems and supporting software. The
C#, etc. and the software lifecycle starts all over again. applications and the operating systems are changeable and
IV. DISCUSSION reprogrammable, i.e., the micro-controllers have the ability
to run different type of operating systems and applications
The software analysis is an important step to proceed based on user needs. However, due to the limited size of
with our AoT research. During this analysis, we review the some of these devices, many of them have on board
variety of software and classify them based on types and hardwired supported systems that allow them to do certain
computing abilities. The final result of this analysis is functions and abilities, such as identifying an external printer
represented by a software spectrum, as shown in Figure 8: or communication device. The programming ability at this
level is powerful enough to run a sophisticated single
algorithm program based on single programming paradigm,
which can include combination of functions, objects and
simple abstraction of logic, such as reactive software agents.
Finally, at the top of inverted triangle we find very
powerful software that can be run on powerful devices like
the computers. The software at this level are formed from all
the previously mentioned software types with programmable
capabilities. The software’s programming abilities are so
advanced that they can create and accommodate programs
with multiple sophisticated algorithms based on multiple
programming paradigms, which include countless
combination of functions, objects and intelligent software
agents.
This software spectrum is used in combination with the
hardware spectrum that we have analyzed earlier [2]. Briefly,
the software complexity of a thing which is to be deployed in
an AoT implementation is analyzed and located in the
software spectrum. It is then matched with the corresponding
Figure 8. Software spectrum hardware in the hardware spectrum.

17
ISBN 978-967-5770-64-7

V. CONCLUSION AND FUTURE WORK [5] Singh, P.: ‘Basics of Computer’ VK PUBLICATIONS, 2009.
[6] Barata, K., and Cain, P.: ‘Understanding computers: An overview for
In this paper, we conduct an analysis to find the range of records and archives staff-managing public sector records: a study
software that can be covered by the AoT concept. Together programme’ London: International Records Management Trust, 1999.
with the results of hardware analysis [2], it will help us to [7] Pressman, R.S.: ‘Software engineering: a practitioner's approach’
implement the AoT model by optimizing software in a Palgrave Macmillan, 2005.
corresponding hardware configuration. [8] Gaddis, T.: ‘Starting out with Python’ Addison-Wesley Professional,
We use the conventional method to conduct our analysis 2014.
by classifying the software into two main groups (system and [9] O'brien, J., and Marakas, G.M.: ‘Management information systems
application software). We then analyze all the software types with MISource 2007’ Granite Hill Publishers, 2006.
included in these two groups. The final result of this analysis [10] Philipson, G.: ‘A short history of software’, Management, Labour
represents a software spectrum revealing the increase in Process and Software Development: Reality Bites, 2004, pp. 13.
software capabilities and sophistication as we ascend the [11] Franklin, M.: ‘Computer Architecture and Organization: From
Software to Hardware’ Pearson Education, 2012.
spectrum. This spectrum is very important for our research to
[12] ESA: ‘Games: Improving the economy’ Entertainment Software
determine the optimum software requirements for the Association, 2012, http://www.theesa.com/, acessed 25/5/2015.
hardware of AoT implementations. [13] Warman, P.: ‘Global Games Market Will Reach $102.9 Billion in
In our future work, we shall combine the final outcome 2017’ Newzoo - games market research, 2015,
of both analyses (software and hardware) and construct an http://www.newzoo.com/insights/global-games-market-will-reach-
implementation model for the AoT that utilizes optimum 102-9-billion-2017-2, acessed 25/5/2015.
software and hardware for the things. The model will help us [14] Rouse, M. and Dugan, C.: 'Industrial Software' Whatis.com, 2008,
to determine the optimum reasoning level for the things in http://whatis.techtarget.com/definition/industrial-software, accessed
25-5-2015.
the AoT concept.
[15] Vujoševic-Janicic, M., and Tošic, D.: ‘The role of programming
REFERENCES paradigms in the first programming courses’, The Teaching of
Mathematics, XI, 2008, 2, pp. 63-83.
[1] Mzahm, A.M., Ahmad, M.S., and Tang, A.Y.: ‘Agents of Things
[16] 16 Bolshakova, E.: ‘Programming paradigms in computer science
(AoT): An intelligent operational concept of the Internet of Things education’, 2005
(IoT)’, Intelligent Systems Design and Applications (ISDA), 2013
13th International Conference on, 2013, pp. 159-164. [17] Wooldridge, M.: ‘An introduction to multiagent systems’ John Wiley
& Sons, 2009.
[2] Mzahm, A.M., Ahmad, M.S., and Tang, A.Y.: ‘Computing hardware
analysis for Agents of Things (AoT) applications’, Information
Technology and Multimedia (ICIMu), 2014 International Conference
on, 2014, pp. 223-228.
[3] Turban, E., Rainer, R.K., and Potter, R.E.: ‘Introduction to
Information Systems: Supporting and Transforming Business’, 2007.
[4] Shelly, G., and Vermaat, M.: ‘Discovering Computers 2011:
Complete’ Cengage Learning, 2010.

18

You might also like