376 research outputs found
Cloud Service Selection System Approach based on QoS Model: A Systematic Review
The Internet of Things (IoT) has received a lot of interest from researchers recently. IoT is seen as a component of the Internet of Things, which will include billions of intelligent, talkative "things" in the coming decades. IoT is a diverse, multi-layer, wide-area network composed of a number of network links. The detection of services and on-demand supply are difficult in such networks, which are comprised of a variety of resource-limited devices. The growth of service computing-related fields will be aided by the development of new IoT services. Therefore, Cloud service composition provides significant services by integrating the single services. Because of the fast spread of cloud services and their different Quality of Service (QoS), identifying necessary tasks and putting together a service model that includes specific performance assurances has become a major technological problem that has caused widespread concern. Various strategies are used in the composition of services i.e., Clustering, Fuzzy, Deep Learning, Particle Swarm Optimization, Cuckoo Search Algorithm and so on. Researchers have made significant efforts in this field, and computational intelligence approaches are thought to be useful in tackling such challenges. Even though, no systematic research on this topic has been done with specific attention to computational intelligence. Therefore, this publication provides a thorough overview of QoS-aware web service composition, with QoS models and approaches to finding future aspects
Swarm Intelligence for Solving a Traveling Salesman Problem
Learning from the social behavior of animals, like bees or ants, opens the field for Swarm Intelligence (SI) algorithms. They can be applied to solve optimization problems, like the Traveling Salesman Problem (TSP). For SI algorithms, each member of the swarm benefits from the whole swarm and the whole swarm benefits from each individual member. The members communicate either directly or indirectly with each other in order to find an optimal solution. This paper presents an overview of three state-of-the-art SI algorithms, namely, the Ant Colony Optimization (ACO), the Particle Swarm Optimization (PSO), and the Bee Colony Optimization (BCO) for solving a TSP. All three algorithms have been implemented and tested. They have been evaluated with respect to the balance between exploration and exploitation
Towards an efficient indexing and searching model for service discovery in a decentralised environment.
Given the growth and outreach of new information, communication, computing and electronic technologies in various dimensions, the amount of data has explosively increased in the recent years. Centralised systems suffer some limitations to dealing with this issue due to all data is stored in central data centres. Thus, decentralised systems are getting more attention and increasing in popularity. Moreover, efficient service discovery mechanisms have naturally become an essential component in both large-scale and small-scale decentralised systems and. This research study is aimed at modelling a novel efficient indexing and searching model for service discovery in decentralised environments comprising numerous repositories with massive stored services. The main contributions of this research study can be summarised in three components: a novel distributed multilevel indexing model, an optimised searching algorithm and a new simulation environment. Indexing model has been widely used for efficient service discovery. For instance; the inverted index is one of the popular indexing models used for service retrieval in consistent repositories. However, redundancies are inevitable in the inverted index which is significantly time-consuming in the service discovery and retrieval process. This theeis proposes a novel distributed multilevel indexing model (DM-index), which offers an efficient solution for service discovery and retrieval in distributed service repositories comprising massive stored services. The architecture of the proposed indexing model encompasses four hierarchical levels to eliminate redundancy information in service repositories, to narrow the searching space and to reduce the number of traversed services whilst discovering services. Distributed Hash Tables have been widely used to provide data lookup services with logarithmic message costs which only require maintenance of limited amounts of routing states. This thesis develops an optimised searching algorithm, named Double-layer No-redundancy Enhanced Bi-direction Chord (DNEB-Chord), to handle retrieval requests in distributed destination repositories efficiently. This DNEB-Chord algorithm achieves faster routing performances with the double-layer routing mechanism and optimal routing index. The efficiency of the developed indexing and searching model is evaluated through theoretical analysis and experimental evaluation in a newly developed simulation environment, named Distributed Multilevel Bi-direction Simulator (DMBSim), which can be used as cost efficient tool for exploring various service configurations, user retrieval requirements and other parameter settings. Both the theoretical validation and experimental evaluations demonstrate that the service discovery efficiency of the DM-index outperforms the sequential index and inverted index configurations. Furthermore, the experimental evaluation results demostrate that the DNEB-Chord algorithm performs better than the Chord in terms of reducing the incurred hop counts. Finally, simulation results demonstrate that the proposed indexing and searching model can achieve better service discovery performances in large-scale decentralised environments comprising numerous repositories with massive stored services.N/
Evolutionary composition of QoS-aware web services: a many-objective perspective
Web service based applications often invoke services provided by third-parties in their workflow. The Quality of Service (QoS) provided by the invoked supplier can be expressed in terms of the Service Level Agreement specifying the values contracted for particular aspects like cost or throughput, among others. In this scenario, intelligent systems can support the engineer to scrutinise the service market in order to select those candidates that best fit with the expected composition focusing on different QoS aspects. This search problem, also known as QoS-aware web service composition, is characterised by the presence of many diverse QoS properties to be simultaneously optimised from a multi-objective perspective. Nevertheless, as the number of QoS properties considered during the design phase increases and a larger number of decision factors come into play, it becomes more difficult to find the most suitable candidate solutions, so more sophisticated techniques are required to explore and return diverse, competitive alternatives. With this aim, this paper explores the suitability of many-objective evolutionary algorithms for addressing the binding problem of web services on the basis of a real-world benchmark with 9 QoS properties. A complete comparative study demonstrates that these techniques, never before applied to this problem, can achieve a better trade-off between all the QoS properties, or even promote specific QoS properties while keeping high values for the rest. In addition, this search process can be performed within a reasonable computational cost, enabling its adoption by intelligent and decision-support systems in the field of service oriented computation.Junta de AndalucÃa P12-TIC-1867Ministerio de EconomÃa y Competitividad TIN2012-32273Junta de AndalucÃa TIC-5906Ministerio de EconomÃa y Competitividad TIN2014-55252-PMinisterio de EconomÃa y Competitividad TIN2015- 71841-REDTMinisterio de Educación, Cultura y Deportes FPU13/0146
The Symposium on Search-Based Software Engineering: Past, Present and Future
CONTEXT: Search-Based Software Engineering (SBSE) is the research field where Software Engineering (SE) problems are modelled as search problems to be solved by search-based techniques. The Symposium on Search Based Software Engineering (SSBSE) is the premier event on SBSE, which had its 11th edition in 2019. OBJECTIVE: In order to better understand the characteristics and evolution of papers published at SSBSE, this work reports results from a mapping study targeting the proceedings of all SSBSE editions. Despite the existing mapping studies on SBSE, our contribution in this work is to provide information to researchers and practitioners willing to enter the SBSE field, being a source of information to strengthen the symposium, guide new studies, and motivate new collaboration among research groups. METHOD: A systematic mapping study was conducted with a set of four research questions, in which 134 studies published in all editions of SSBSE, dated from 2009 to 2019, were evaluated. In a fifth question, 32 papers published in the challenge track were summarised. RESULTS: Throughout the years, 290 authors from 25 countries have contributed to the main track of the symposium, with the collaboration of at least two institutions in 46.3% of the papers. SSBSE papers have got substantial external visibility, as most citations are from different venues. The SE tasks addressed by SSBSE are mostly related to software testing, software debugging, software design, and maintenance. Evolutionary algorithms are present in 75% of the papers, being the most common search technique. The evaluation of the SBSE approaches usually includes industrial systems. CONCLUSIONS: SSBSE has helped increase the popularity of SBSE in the SE research community and has played an important role on making SBSE mature. There are still problems and challenges to be addressed in the SBSE field, which can be tackled by SSBSE authors in further studies
Holistic, data-driven, service and supply chain optimisation: linked optimisation.
The intensity of competition and technological advancements in the business environment has made companies collaborate and cooperate together as a means of survival. This creates a chain of companies and business components with unified business objectives. However, managing the decision-making process (like scheduling, ordering, delivering and allocating) at the various business components and maintaining a holistic objective is a huge business challenge, as these operations are complex and dynamic. This is because the overall chain of business processes is widely distributed across all the supply chain participants; therefore, no individual collaborator has a complete overview of the processes. Increasingly, such decisions are automated and are strongly supported by optimisation algorithms - manufacturing optimisation, B2B ordering, financial trading, transportation scheduling and allocation. However, most of these algorithms do not incorporate the complexity associated with interacting decision-making systems like supply chains. It is well-known that decisions made at one point in supply chains can have significant consequences that ripple through linked production and transportation systems. Recently, global shocks to supply chains (COVID-19, climate change, blockage of the Suez Canal) have demonstrated the importance of these interdependencies, and the need to create supply chains that are more resilient and have significantly reduced impact on the environment. Such interacting decision-making systems need to be considered through an optimisation process. However, the interactions between such decision-making systems are not modelled. We therefore believe that modelling such interactions is an opportunity to provide computational extensions to current optimisation paradigms. This research study aims to develop a general framework for formulating and solving holistic, data-driven optimisation problems in service and supply chains. This research achieved this aim and contributes to scholarship by firstly considering the complexities of supply chain problems from a linked problem perspective. This leads to developing a formalism for characterising linked optimisation problems as a model for supply chains. Secondly, the research adopts a method for creating a linked optimisation problem benchmark by linking existing classical benchmark sets. This involves using a mix of classical optimisation problems, typically relating to supply chain decision problems, to describe different modes of linkages in linked optimisation problems. Thirdly, several techniques for linking supply chain fragmented data have been proposed in the literature to identify data relationships. Therefore, this thesis explores some of these techniques and combines them in specific ways to improve the data discovery process. Lastly, many state-of-the-art algorithms have been explored in the literature and these algorithms have been used to tackle problems relating to supply chain problems. This research therefore investigates the resilient state-of-the-art optimisation algorithms presented in the literature, and then designs suitable algorithmic approaches inspired by the existing algorithms and the nature of problem linkages to address different problem linkages in supply chains. Considering research findings and future perspectives, the study demonstrates the suitability of algorithms to different linked structures involving two sub-problems, which suggests further investigations on issues like the suitability of algorithms on more complex structures, benchmark methodologies, holistic goals and evaluation, processmining, game theory and dependency analysis
Metaheuristic models for decision support in the software construction process
En la actualidad, los ingenieros software no solo tienen la responsabilidad de construir
sistemas que desempe~nen una determinada funcionalidad, sino que cada vez
es más importante que dichos sistemas también cumplan con requisitos no funcionales
como alta disponibilidad, efciencia o seguridad, entre otros. Para lograrlo,
los ingenieros se enfrentan a un proceso continuo de decisión, pues deben estudiar
las necesidades del sistema a desarrollar y las alternativas tecnológicas existentes
para implementarlo. Todo este proceso debe estar encaminado a la obtención de
sistemas software de gran calidad, reutilizables y que faciliten su mantenimiento y
modificación en un escenario tan exigente y competitivo.
La ingenierÃa del software, como método sistemático para la construcción de software,
ha aportado una serie de pautas y tareas que, realizadas de forma disciplinada
y adaptadas al contexto de desarrollo, posibilitan la obtención de software de calidad.
En concreto, el proceso de análisis y diseño del software ha adquirido una gran
importancia, pues en ella se concibe la estructura del sistema, en términos de sus bloques
funcionales y las interacciones entre ellos. Es en este momento cuando se toman
las decisiones acerca de la arquitectura, incluyendo los componentes que la conforman,
que mejor se adapta a los requisitos, tanto funcionales como no funcionales,
que presenta el sistema y que claramente repercuten en su posterior desarrollo. Por
tanto, es necesario que el ingeniero analice rigurosamente las alternativas existentes,
sus implicaciones en los criterios de calidad impuestos y la necesidad de establecer
compromisos entre ellos. En este contexto, los ingenieros se guÃan principalmente
por sus habilidades y experiencia, por lo que dotarles de métodos de apoyo a la
decisión representarÃa un avance significativo en el área.
La aplicación de técnicas de inteligencia artificial en este ámbito ha despertado un
gran interés en los últimos años. En particular, la inteligencia artificial ha encontrado
en la ingenierÃa del software un ámbito de aplicación complejo, donde diferentes
técnicas pueden ayudar a conseguir la semi-automatización de tareas tradicionalmente
realizadas de forma manual. De la unión de ambas áreas surge la denominada
ingenierÃa del software basada en búsqueda, que propone la reformulación de las
actividades propias de la ingenierÃa del software como problemas de optimización.
A continuación, estos problemas podrÃan ser resueltos mediante técnicas de búsqueda
como las metaheurÃsticas. Este tipo de técnicas se caracterizan por explorar el
espacio de posibles soluciones de una manera \inteligente", a menudo simulando
procesos naturales como es el caso de los algoritmos evolutivos.
A pesar de ser un campo de investigación muy reciente, es posible encontrar propuestas
para automatizar una gran variedad de tareas dentro del ciclo de vida del software, como son la priorización de requisitos, la planifcación de recursos, la refactorización del código fuente o la generación de casos de prueba. En el ámbito del
análisis y diseño de software, cuyas tareas requieren de creatividad y experiencia,
conseguir una automatización completa resulta poco realista. Es por ello por lo que
la resolución de sus tareas mediante enfoques de búsqueda debe ser tratada desde la
perspectiva del ingeniero, promoviendo incluso la interacción con ellos. Además, el
alto grado de abstracción de algunas de sus tareas y la dificultad de evaluar cuantitativamente
la calidad de un diseño software, suponen grandes retos en la aplicación
de técnicas de búsqueda durante las fases tempranas del proceso de construcción de
software.
Esta tesis doctoral busca realizar aportaciones significativas al campo de la ingenierÃa
del software basada en búsqueda y, más concretamente, al área de la optimización
de arquitecturas software. Aunque se están realizando importantes avances en este
área, la mayorÃa de propuestas se centran en la obtención de arquitecturas de bajo
nivel o en la selección y despliegue de artefactos software ya desarrollados. Por tanto,
no existen propuestas que aborden el modelado arquitectónico a un nivel de abstracción elevado, donde aún no existe un conocimiento profundo sobre cómo será el
sistema y, por tanto, es más difÃcil asistir al ingeniero. Como problema de estudio,
se ha abordado principalmente la tarea del descubrimiento de arquitecturas software
basadas en componentes. El objetivo de este problema consiste en abstraer los bloques
arquitectónicos que mejor definen la estructura actual del software, asà como
sus interacciones, con el fin de facilitar al ingeniero su posterior análisis y mejora.
Durante el desarrollo de esta tesis doctoral se ha explorado el uso de una gran variedad
de técnicas de búsqueda, estudiando su idoneidad y realizando las adaptaciones
necesarias para hacer frente a los retos mencionados anteriormente. La primera propuesta
se ha centrado en la formulación del descubrimiento de arquitecturas como
problema de optimización, abordando la representación computacional de los artefactos
software que deben ser modelados y definiendo medidas software para evaluar
su calidad durante el proceso de búsqueda. Además, se ha desarrollado un primer
modelo basado en algoritmos evolutivos mono-objetivo para su resolución, el cual ha
sido validado experimentalmente con sistemas software reales. Dicho modelo se caracteriza
por ser comprensible y
exible, pues sus componentes han sido diseñados
considerando estándares y herramientas del ámbito de la ingenierÃa del software,
siendo además configurable en función de las necesidades del ingeniero.
A continuación, el descubrimiento de arquitecturas ha sido tratado desde una perspectiva
multiobjetivo, donde varias medidas software, a menudo en con
icto, deben
ser simultáneamente optimizadas. En este caso, la resolución del problema se ha
llevado a cabo mediante ocho algoritmos del estado del arte, incluyendo propuestas recientes del ámbito de la optimización de muchos objetivos. Tras ser adaptados al
problema, estos algoritmos han sido comparados mediante un extenso estudio experimental
con el objetivo de analizar la ifnuencia que tiene el número y la elección
de las métricas a la hora de guiar el proceso de búsqueda. Además de realizar una
validación del rendimiento de estos algoritmos siguiendo las prácticas habituales
del área, este estudio aporta un análisis detallado de las implicaciones que supone
la optimización de múltiples objetivos en la obtención de modelos de soporte a la
decisión.
La última propuesta en el contexto del descubrimiento de arquitecturas software
se centra en la incorporación de la opinión del ingeniero al proceso de búsqueda.
Para ello se ha diseñado un mecanismo de interacción que permite al ingeniero indicar
tanto las caracterÃsticas deseables en las soluciones arquitectónicas (preferencias
positivas) como aquellos aspectos que deben evitarse (preferencias negativas). Esta
información es combinada con las medidas software utilizadas hasta el momento,
permitiendo al algoritmo evolutivo adaptar la búsqueda conforme el ingeniero interactúe. Dadas las caracterÃsticas del modelo, su validación se ha realizado con la
participación de ingenieros con distinta experiencia en desarrollo software, a fin de
demostrar la idoneidad y utilidad de la propuesta.
En el transcurso de la tesis doctoral, los conocimientos adquiridos y las técnicas
desarrolladas también han sido extrapolados a otros ámbitos de la ingenierÃa del
software basada en búsqueda mediante colaboraciones con investigadores del área.
Cabe destacar especialmente la formalización de una nueva disciplina transversal,
denominada ingenierÃa del software basada en búsqueda interactiva, cuyo fin es promover
la participación activa del ingeniero durante el proceso de búsqueda. Además,
se ha explorado la aplicación de algoritmos de muchos objetivos a un problema clásico
de la computación orientada a servicios, como es la composición de servicios web.Nowadays, software engineers have not only the responsibility of building systems that provide a particular functionality, but they also have to guarantee that these systems ful l demanding non-functional requirements like high availability, e ciency or security. To achieve this, software engineers face a continuous decision process, as they have to evaluate system needs and existing technological alternatives to implement it. All this process should be oriented towards obtaining high-quality and reusable systems, also making future modi cations and maintenance easier in such a competitive scenario. Software engineering, as a systematic method to build software, has provided a number of guidelines and tasks that, when done in a disciplinarily manner and properly adapted to the development context, allow the creation of high-quality software. More speci cally, software analysis and design has acquired great relevance, being the phase in which the software structure is conceived in terms of its functional blocks and their interactions. In this phase, engineers have to make decisions about the most suitable architecture, including its constituent components. Such decisions are made according to the system requirements, either functional or non-functional, and will have a great impact on its future development. Therefore, the engineer has to rigorously analyse existing alternatives, their implications on the imposed quality criteria and the need of establishing trade-o s among them. In this context, engineers are mostly guided by their own capabilities and experience, so providing them with decision support methods would represent a signi cant contribution. The application of arti cial intelligent techniques in this area has experienced a growing interest in the last years. Particularly, software engineering represents a complex application domain to arti cial intelligence, whose diverse techniques can help in the semi-automation of tasks traditionally performed manually. The union of both elds has led to the appearance of search-based software engineering, which proposes reformulating software engineering activities as optimisation problems. For their resolution, search techniques like metaheuristics can be then applied. This type of technique performs an \intelligent" exploration of the space of candidate solutions, often inspired by natural processes as happens with evolutionary algorithms. Despite the novelty of this research eld, there are proposals to automate a great variety of tasks within the software lifecycle, such as requirement prioritisation, resource planning, code refactoring or test case generation. Focusing on analysis and design, whose tasks require creativity and experience, trying to achieve full automation is not realistic. Therefore, solving design tasks by means of search approaches should be oriented towards the engineer's perspective, even promoting their interaction. Furthermore, design tasks are also characterised by a high level of abstraction and the di culty of quantitatively evaluating design quality. All these aspects represent key challenges for the application of search techniques in early phases of the software construction process. The aim of this Ph.D. Thesis is to make signi cant contributions in search-based software engineering and, specially, in the area of software architecture optimisation. Although it is an area in which signi cant progress is being done, most of the current proposals are focused on generating low-level architectures or selecting and deploying already developed artefacts. Therefore, there is a lack of proposals dealing with architectural modelling at a high level of abstraction. At this level, engineers do not have a deep understanding of the system yet, meaning that assisting them is even more di cult. As case study, the discovery of component-based software architectures has been primary addressed. The objective for this problem consists in the abstraction of the architectural blocks, and their interactions, that best de ne the current structure of a software system. This can be viewed as the rst step an engineer would perform in order to further analyse and improve the system architecture. In this Ph.D. Thesis, the use of a great variety of search techniques has been explored. The suitability of these techniques has been studied, also making the necessary adaptations to cope with the aforementioned challenges. A rst proposal has been focused on the formulation of software architecture discovery as an optimisation problem, which consists in the computational representation of its software artefacts and the de nition of software metrics to evaluate their quality during the search process. Moreover, a single-objective evolutionary algorithm has been designed for its resolution, which has been validated using real software systems. The resulting model is comprehensible and exible, since its components have been designed under software engineering standards and tools and are also con gurable according to engineer's needs. Next, the discovery of software architectures has been tackled from a multi-objective perspective, in which several software metrics, often in con ict, have to be simultaneously optimised. In this case, the problem is solved by applying eight state-of-theart algorithms, including some recent many-objective approaches. These algorithms have been adapted to the problem and compared in an extensive experimental study, whose purpose is to analyse the in uence of the number and combination of metrics when guiding the search process. Apart from the performance validation following usual practices within the eld, this study provides a detailed analysis of the practical
implications behind the optimisation of multiple objectives in the context of
decision support.
The last proposal is focused on interactively including the engineer's opinion in the
search-based architecture discovery process. To do this, an interaction mechanism
has been designed, which allows the engineer to express desired characteristics for
the solutions (positive preferences), as well as those aspects that should be avoided
(negative preferences). The gathered information is combined with the software
metrics used until the moment, thus making possible to adapt the search as the
engineer interacts. Due to the characteristics of the proposed model, engineers of
di erent expertise in software development have participated in its validation with
the aim of showing the suitability and utility of the approach.
The knowledge acquired along the development of the Thesis, as well as the proposed
approaches, have also been transferred to other search-based software engineering
areas as a result of research collaborations. In this sense, it is worth noting the
formalisation of interactive search-based software engineering as a cross-cutting discipline,
which aims at promoting the active participation of the engineer during the
search process. Furthermore, the use of many-objective algorithms has been explored
in the context of service-oriented computing to address the so-called web service
composition problem
Improvements on the bees algorithm for continuous optimisation problems
This work focuses on the improvements of the Bees Algorithm in order to enhance the algorithm’s performance especially in terms of convergence rate. For the first enhancement, a pseudo-gradient Bees Algorithm (PG-BA) compares the fitness as well as the position of previous and current bees so that the best bees in each patch are appropriately guided towards a better search direction after each consecutive cycle. This method eliminates the need to differentiate the objective function which is unlike the typical gradient search method. The improved algorithm is subjected to several numerical benchmark test functions as well as the training of neural network. The results from the experiments are then compared to the standard variant of the Bees Algorithm and other swarm intelligence procedures. The data analysis generally confirmed that the PG-BA is effective at speeding up the convergence time to optimum.
Next, an approach to avoid the formation of overlapping patches is proposed. The Patch Overlap Avoidance Bees Algorithm (POA-BA) is designed to avoid redundancy in search area especially if the site is deemed unprofitable. This method is quite similar to Tabu Search (TS) with the POA-BA forbids the exact exploitation of previously visited solutions along with their corresponding neighbourhood. Patches are not allowed to intersect not just in the next generation but also in the current cycle. This reduces the number of patches materialise in the same peak (maximisation) or valley (minimisation) which ensures a thorough search of the problem landscape as bees are distributed around the scaled down area. The same benchmark problems as PG-BA were applied against this modified strategy to a reasonable success.
Finally, the Bees Algorithm is revised to have the capability of locating all of the global optimum as well as the substantial local peaks in a single run. These multi-solutions of comparable fitness offers some alternatives for the decision makers to choose from. The patches are formed only if the bees are the fittest from different peaks by using a hill-valley mechanism in this so called Extended Bees Algorithm (EBA). This permits the maintenance of diversified solutions throughout the search process in addition to minimising the chances of getting trap. This version is proven beneficial when tested with numerous multimodal optimisation problems
Applied Metaheuristic Computing
For decades, Applied Metaheuristic Computing (AMC) has been a prevailing optimization technique for tackling perplexing engineering and business problems, such as scheduling, routing, ordering, bin packing, assignment, facility layout planning, among others. This is partly because the classic exact methods are constrained with prior assumptions, and partly due to the heuristics being problem-dependent and lacking generalization. AMC, on the contrary, guides the course of low-level heuristics to search beyond the local optimality, which impairs the capability of traditional computation methods. This topic series has collected quality papers proposing cutting-edge methodology and innovative applications which drive the advances of AMC
Resource discovery for distributed computing systems: A comprehensive survey
Large-scale distributed computing environments provide a vast amount of heterogeneous computing resources from different sources for resource sharing and distributed computing. Discovering appropriate resources in such environments is a challenge which involves several different subjects. In this paper, we provide an investigation on the current state of resource discovery protocols, mechanisms, and platforms for large-scale distributed environments, focusing on the design aspects. We classify all related aspects, general steps, and requirements to construct a novel resource discovery solution in three categories consisting of structures, methods, and issues. Accordingly, we review the literature, analyzing various aspects for each category
- …