Keywords

1 Introduction

Artificial intelligence is acclimatising agents current principles in addition to playing an important role in global network connection, with search engines being a particularly relevant example of this importance. Technology is accumulating intricacy of software hence agents are becoming familiar with it as a paradigm in software engineering. Agents are centered on societal opinion of computations and assistance by the sensors those are the reason after their continuous environment sensing.

Franklin and Grasser [1] discussed agents as intelligent organisms placed in the environment and capable of taking autonomous actions to fulfil their design objectives within a long-lived computational system, with sensors and effectors. Agents are smart enough to decide on self-directed actions in order to capitalize and make progress towards their goals.

Categories of agents are outlined based on their functionality, i.e. simple agents with predefined processing rules that are self-activated as a result of arising conditions. Agents are self-governed and experienced, no external intervention from resource (users). For example, when a telephone call is made, a bell rings, and after a defined period of time the call is transferred automatically to an answering machine.

A dynamic environment is the best suited to intelligent agents constructed with an ability to learn from their environment as well as train from predefined situations.

Jennings [2, 3] detailed how agent-based computing is moving toward multifaceted and distributed systems, which leads in turn to the maximization of complex systems towards the mainstream software engineering paradigm.

Software development is continually improving in a fashion and is helping to increase and enrich productivity. In recent decades, the software development paradigm has changed from being procedural to being object oriented and currently we succeeded to component and aspect, now moving to agent [4].

The agent-oriented paradigm is an emerging one in software engineering, agent in active form unlike in object and component oriented paradigm. This is diverse concept from object paradigm like classes to role, variable to belief/knowledge and method to message. Being a component, an agent has its own interface through which to communicate with other agents without residing components in memory.

A system is situated within an environment and senses that environment and acts on it, over time, in pursuit of its own agenda, thereby effecting what it senses in the future [5].

Agents follow a goal-oriented approach sensing the environment constantly. They autonomously perform their own controllable actions if any changes are detected, and with the help of other agents interact to complete the task without the need for any human intervention. The characteristics of agents are discussed below (Fig. 1).

  1. (i)

    Situated: Agents stay in the memory and monitor the environment for activation.

  2. (ii)

    Autonomous: Agents are activated as they detect a change in the environment. They do not need to operate explicitly.

  3. (iii)

    Proactive: Each agent has its own goal. As they sense for the requirement of the environment, they will be active to achieve the goal.

  4. (iv)

    Reactive: Agents continuously monitor the environment. They react when changes occur in the environment.

  5. (v)

    Social Ability: One agent cannot perform all tasks. An agent has to communicate with other agents to complete required tasks.

Fig. 1
figure 1

Characteristics of an agent

On top of the distinctiveness it has been attested that an agent is a component, which activates itself by sensing the environment.

Software development has allowed the adoption of new techniques with increasing complexity that allow improvement in the quality and adaptability of systems in different environments and on multiple platforms.

The measurement of software quality should be of a high quality, and not be evaluated by old defined method due to legacy tricks for new technology-driven systems. The new paradigm requires a new methodology to improve the quality of systems through the enhancement of the quality of measurement of systems.

This paper is presented in five sections. Section 2 provides some guidelines regarding existing metrics. Section 3 discusses the necessity for new metrics. Section 4 proposes some metrics for agent-based systems and discusses the relationship between metrics and dependent factors. The paper concludes in Sect. 5.

2 Existing Metrics

Quantitative evaluation is the best means of measurement as it is numerically based and this is a requirement for the evaluation of systems. Despite this, its use to assess the system quality will still result in subjective evaluation. Metrics are employed by software to maintain the quality of a system and serve as a means of comparison, cost estimation, fault prediction, and forecasting. Software metrics play a vital role in measuring the quality of software development but new metrics are required for agents. New generation technology requires different segments to measure the quality of software, which leads to metrics growth.

Software metrics were familiarized in the late 1960s to support management decisions taken at the time of development. They were used to calculate effort, time, and other predictions, such as LOC (lines of code) or similar size counts, function points, defect counts, and effort figures by Etzkorn et al. [6] and Sedigh Ali et al. [7].

Here in a test by a top metrics emphasizes on the functionality of the system.

Several metrics are available for the measurement of computer software and its processes, which can deliberate to enrich its Query continuously too. Measurement radiate the estimation, quality control, productive assessment, and project control used by software engineers to help assess the quality of technical products and to assist in the tactical decision making of a project.

Metrics of the software process and products are quantitative evaluations that enable the software industry to gain insights into the efficacy of the process and any projects that are conducted using it as a framework. Basic quality and productivity data can be analyzed and means of the data can be compared with those of the past to better identify how future progress can be made. Metrics can be used to identify and isolate problems in order to facilitate remedies and improve the process of software development. If a quantitative evaluation is not made then judgment can be based only on subjective evaluation. With a quantitative evaluation, trends (either good or bad) can be better identified and used to make true improvements over time. The first step is to define a limited set of process, project, and product measures that are easy to collect and which can be normalized using either size or function-oriented metrics. The results are analyzed and compared to past means for similar projects performed within the organization. Trends are assessed and conclusions are generated.

Abreu and Carapuca [8] discussed metrics relating to design, size, complexity, reuse, productivity, quality, class, and method basically for object-oriented systems. In a similar fashion, Binder [9] put forward the measurement of encapsulation, inheritance, polymorphism, and complexity. Dumke et al. [10] proposed for all phases of object-oriented development. Lee et al. [11] clarified metrics for class coupling and cohesion. A metrics suite was also proposed for object-oriented design by Chidamber and Kemerer [12]. These metrics were purely for key concepts of object-oriented programming, such as object, class, and inheritance etc. [13]. These metrics evaluated reusability and the coupling factor between classes.

Measurement methods were proposed for components and focused on the complexity of interaction (Narasimhan and Hendradjaya [14], Mahmood and Lai [15], Salman [16], Kharb and Singh [17], Gill and Balkishan [18]). Similarly, metrics based on (Boxall and Araban [19], Washizaki et al. [20], Rotaru and Dobre [21]) reusability and component size, probability, integration, reliability, resource utilization, etc., were proposed by Gill and Grover [22].

3 The Necessity for New Metrics

The agent is relatively related to object and component, which is based on system, and follows the concept of object-oriented development. The agent is an active object in contrast to an object acting passively in an object-oriented paradigm. An agent with autonomous and reactive properties provides a diverse potency applicable in different environments. Consequently, the metrics proposed for object-based and component-based systems are inadequate.

Accordingly, additional software metrics are needed to ensure the quality of agent-based systems through the measurement of the quality of those systems.

Hitch in an established metrics aimed at a number of deduces:

  • An agent has an individual thread of control due to its autonomous nature.

  • On account of its autonomous nature an agent will decide on an action by itself. It perceives any changes to its environment.

  • Agents are social in nature. A single agent cannot perform all necessary activities. An agent needs the cooperation of other agents to complete its task.

  • Adaptability is one of the important features of an agent. When an agent moves from one environment to another, adaptability to the new environment is required.

  • Agents communicate with other agents via the help of their own interface. Each agent has an independent interface through which it can communicate with other agents.

  • Agents are reactive by nature. How much time is taken by an agent after it has identified its aim? This means that agent action time is also important.

  • When an agent is moving in different environments, resources are acquired by that agent. Resource accessibility is therefore important in achieving the goal.

  • An agent stays in memory to sense the environment. An agent senses the environment for activation.

  • Agents are proactive in achieving their goal. They set their goals and wait for them to be achieved.

  • Agents have to communicate with different environments and with different types of agents. This is why they need to have a dynamic nature.

  • Agents are active objects unlike the passive objects in object-oriented systems.

  • Each agent communicates with other agents through an interface without knowing the details of the other agents.

  • Agents have to trust other agents to fulfil their goal.

4 Advancement in Metrics

Agent-based systems are constituted of one or more agents. Different agents have the aforementioned identifiable roles and interact and cooperate with other agents in different environments as required by their tasks. Various significant issues regarding complexity have an effect on the nature of the agent:

  • Agent communication

  • Process time

  • Receptiveness of resources for an agent in its surroundings

  • Time to grasp surroundings

  • Switching time from one environment to another

  • Action taken by agents

  • Number of unpredictable changes in an environment

  • Interoperability among agents

  • Belief and reputation

In the way of agents, metrics have accomplished many upright endeavours. Klugal [23] discussed metrics for various aspects of agent-based systems. Mala and Cil et al. [24] proposed complexity dimensions in terms of system size, intelligence, and agent interaction. Sarkar and Debnath [25] introduced a new framework and metrics based on collaboration. Sterling [26] discussed quality goals based on adaptivity. Magarino et al. [27] proposed a metrics suite for measuring agent-oriented architectures. The respective quality attributes are getting on with metrics: extensibility, modularity and complexity.

Sivakumar et al. [28] presented a metric to measure the quality of software for an agent-oriented system, proposing a tool to measure the quality. Dam and Winikoff [29] worked on the maintenance phase with the help of agents detailing the repair of inconsistencies using event-triggered plans.

Bitonto et al. [30] proposed competency factors in terms of rationality, autonomy, reactivity, and environment adaptability. The measures were also represented with perspective of different points. These factors lie on many other various lines. Closed intervals were used for calculating the different factors. We have used some aspects of this work in the preparation of this paper.

Bakar et al. [31] proposed a framework to assess the quality of interaction among agents. In this paper, both availability and trustability metrics are addressed. Marir et al. [32] discussed metrics used to measure the complexity of multi-agent systems. Stocker et al. [33] provided a solution that enables the measurement of workload in the early stages of a design. Their work is founded on multi-agent systems based on the belief-desire-intention (BDI) model.

Atop altogether all have been accomplishing their work towards agent-based metrics. Metrics are proposed in various dimensions like in direction of traditional metrics and perspective of agent. The factors to be considered for our proposed metrics are as follows:

  1. (i)

    Resource Availability

    This refers to available resources in different environments. It is only possible when an agent has complete, accurate, and current state information of an environment.

    $$ \{ r|r \in R, \; r\;{\text{is number of resources required for process}}\} $$
  2. (ii)

    Process Time

    This refers to the length of time required to perform any task by single or multiple agents.

    $$ {\text{process}}\;{\text{time}} = {\text{activation}}\;{\text{time}}\;{\text{of agents}} + {\text{execution}}\;{\text{time}} $$
  3. (iii)

    Agent Type (Static or Dynamic)

    A static agent works in a deterministic environment where any action has a single effect, whereas a dynamic agent works in a non-deterministic environment where the same action in identical situations may have entirely different effects. Dynamic agents are also capable of learning.

  4. (iv)

    Pathway Transit (Interrupted or Uninterrupted)

    When one agent is shifting to another environment, then it is either interrupted or uninterrupted.

  5. (v)

    Pathway Type (Static or Dynamic)

    A static passage means that the environment is not changing at the time of action, whereas a dynamic passage means the environment is changing at the time of action.

  6. (vi)

    Number of Agents

    This specifies how many agents should participate in achieving the goal.

    AG represents the agents present in an environment while ag represents the number of active agents for the particular task.

    $$ {\text{ag}} \subseteq AG $$
  7. (vii)

    Number of Actions

    How many actions should be taken in order to achieve the goal?

    AC represents the total number of actions assigned to the agent and ac is number of actions taken by the agent to fulfil the particular task.

    $$ ac \subseteq AC $$
  8. (viii)

    Learning Ability

    A dynamic agent is able to learn from experience.

  9. (ix)

    Agent Success Rate

    The agent success rate depends on the task being successfully completed by the agent.

    $$ {\text{Success Rate}} = \frac{t}{T}* 100 $$

    T represents the total tasks undertaken by the agent and t represents the number of successful tasks completed by the agent.

  10. (x)

    Leadership

    Is the agent able to initiate the task or not?

  11. (xi)

    Agent Action

    What type of action is taken by the agent? This applies to dynamic agents only.

  12. (xii)

    Expected Action

    The action specified at the time of development of the system.

  13. (xiii)

    Diplomacy

    Is the agent able to undertake negotiations in the case of actions?

  14. (xiv)

    Instrumentation

    Is the agent actually able to diagnose the error while taking action? This factor depends upon the proactive ability of the agent.

  15. (xv)

    Generality

    This is when any agent does the task of another agent (deactivated agent).

In addition to these factors are the foundations of the following projected metrics:

Agent Competence Metric (ACM): This measures the effectiveness of an agent.

Agent Support Metric (ASM): This provides a measurement of the number of agents communicating to complete the task.

Resource Receptive Metric (RRM): This helps to calculate the resources accessible in other environments.

Agent Versatility Metric (AVM): This measures the adaptability of an agent to different environments.

Agent Skill Metric (ASKM): This metric calculates how an agent performs in different situations.

Agent Shift Metric (ASHM): This provides a measure of the switching time taken by an agent moving from one environment to another.

Agent Environment Shift Metric (ASSM): In achieving its goal, an agent will move from one environment to another. As a result an environment transition measurement is required.

Agent Achievement Metric (AACM): As well as agent participation, success rate depth is also important.

Cooperation Agent Metric (CAM): This relates to communication among agents and the help given by one agent to another.

Trust Metric (TM): This helps to calculate the trust factor of an agent and its environment.

The relationships between metrics and factors are shown in Table 1.

Table 1 Relationships between metrics and factors

The table shows the proposed metrics based on the behavior of an agent in the system. It shows the relationship among the proposed metrics and their dependency factors. For example, to measure agent competency, we must be aware of the type of agent, process time, and surroundings. These parameters differ with respect to surrounding, process, and communication time. Through the use of these parameters we can see that the success of the metrics depends on several factors. It is essential to regard these parameters as the parameters on which metrics depends.

5 Conclusion

Agents-based development is promising technique for the development of complex and distributed systems. Technology is accumulative intricacy of software hence Agents are acquainting with as a paradigm in software engineering. Agents are centered on societal opinion of computations and assistance by the sensors that are the reason for their continuous environment sensing.

In this paper we have discussed agents and conclude that measurement requires a quantification of quality and provides an inexperienced glance en-route for measurement of an agent-based system. Popular existing metrics are inadequate and new metrics are required to measure the quality of agent-based systems. In this light upon essentiality of metrics for various type of paradigm towards agent-based systems, we have considered some significant issues as well as some issues relating to complexity.

As a result of these complexity issues certain new metrics are proposed in this paper. These metrics depends various factors, e.g., process time, knowledge, and aptitude etc. The values of these metrics are not precise and vary from system to system, having vague values. Soft computing may be better approach for addressing these types of factors. Future work should look to address the effectiveness of these factors for metrics using soft computing techniques.