to one another, and that take part in systematic
institutionalized patterns of interactions with other
roles. This type of MAS achieves its goals by
assigning agents to different roles according to their
individual abilities (Ferber et al., 2004). We then
admit, in the context of this work, that an
organization works properly and can achieve its
objectives if its agents perform their roles in an
efficient manner and that the decrease in their
efficiency entails a disturbance which leads to a
degradation of the efficiency of the entire system.
Therefore, a solution where multi-agent systems are
enhancing with the ability to reassign
responsibilities from defective agents to others
providing similar capabilities is needed. This
requires first collecting information on the ability or
inability of a given agent to assume its roles. This
information can then form the basis of a decision as
to whether other agents should be sought for the
accomplishment of a given objective.
Based on these ascertainment, we propose a
conditional preventive maintenance approach by
monitoring certain quality criteria corresponding to
the running MAS in order to predict any failure that
may appear. The idea of our approach therefore
consists in keeping the system’s quality level and
that of the agents beyond certain thresholds defined
by the designer. When the system quality
deteriorates below the defined thresholds, we
reorganize the system in order to restore its quality
and allow it to resume its normal functioning.
The remainder of this paper is organized as
follows. In Section 2, we give a brief overview of
major related work. We present in Section 3 the
proposed approach. The architecture of the proposed
system is given in section 4. We discuss in section 5
the advantages and limitations of our approach.
Section 6 gives some conclusions and future work
directions
.
2 RELATED WORK
Very few approaches have been proposed in the
literature to deal with the problems which are related
to preventive maintenance of software (Garget et al.
1998, Vaidyanathan et al, 2002, Singh and
BinduGoel, 2007, Cheluvaraju et al, 2012, Sun and
Wang, 2012).
In order to solve the problem of preventive
maintenance of software systems for transactions, an
analytical model has been proposed by Garget and
al. This model takes into account: the availability of
the software to provide a service, the probability of
losing a transaction and the response time of a
transaction (Garget et al. 1998).
Through a Markov regeneration process with a
subordinate semi-Markov reward process,
Vaidyanathan et al. proposed an analytical model of
a software system using preventive maintenance
based on inspection (Vaidyanathan et al, 2002).
Singh and BinduGoel first attempted to analyse
the issues governing software maintenance and how
preventive maintenance can improve the lifespan
(aging) of the software product. These authors then
integrated a model for preventive maintenance into
the software lifecycle (Singh and BinduGoel, 2007).
Cheluvaraju et al. proposed a software quality
metric called "prevention metric" to measure the
avoidance of defects in software. This metric derives
from a quantitative assessment of both the efficiency
and effectiveness of individual prevention
techniques that are employed on the software prior
to its deployment. It helps provide confidence in
how defect prevention is handled prior to
deployment (Cheluvaraju et al, 2012).
A preventive software maintenance policy based
on the ant colony algorithm has been studied by Sun
and Wang. The system as a whole has been divided
into several subsystems each of which has four types
of maintenance policy with different maintenance
costs. This type of model makes it possible to obtain
an optimal preventive maintenance policy for each
sub-system, thus guaranteeing excellent reliability of
the software system with relatively lower costs (Sun
and Wang, 2012).
Ghrieb et al. (Ghrieb et al., 2020) have proposed
a conditional preventive maintenance approach for
multi-agent applications that is based on MAS
quality measurements and uses aspect-oriented
programming. This proposed approach includes
three major steps: (i) measurements of two quality
metrics (autonomy and sociability) of the running
application in a dynamic and continuous manner
using the AspectJ code and comparing them to the
minimum thresholds previously defined by the
designer, (ii) warning the maintainer in case of
detection of abnormal regression in the MAS
quality, and (iii) intervention by the maintainer to
preserve the quality of the application and thus avoid
potential damage.
As mentioned above, all of these approaches
relate to preventive software maintenance. However,
excepting the approach we proposed in (Ghrieb et
al., 2020), none of this work deals with preventive
maintenance of MAS. Our proposed approach was a
first step towards proposing a generic preventive
maintenance approach for multi-agent applications.