# Comparison of Multi-Agent Platform Usability for Industrial-Grade Applications
## 5 AOSE in Contrast to Modern SDLC
### Package Management Tools  
Typically, companies have a standard base technological stack that is widely known among developers and used across most of the components within the organisation. Package management tools are the most efficient method of handling versioning and injection of external and internal modules. As mentioned in Section 4, some companies have their own internal components for maintaining libraries' versioning. With such an approach, the dependency management is simplified, and potential security vulnerabilities are addressed globally rather than in separate instances. Moreover, package management tools allow for connecting internal components with one another. One deprecated and no longer used practice, which still appears quite often in legacy systems, is the manual injection of the source code (e.g., in the case of Java-JARs). This approach has several disadvantages, such as (1) a high possibility of inconsistencies and conflicts in dependencies, (2) time-consuming version control, and (3) lack of support for modularity and reusability. For industrial-grade products with long-term perspectives, this approach is highly inefficient and thus inappropriate for robust software maintenance. In this context, the majority of agent platforms have still not been deployed into global repositories (e.g., Maven Central). Instead, they rely on manual injection or have been deployed in ways that make their management challenging. For instance, a legacy platform, WADE [58] (a supporting tool for JADE), is only injectable by downloading a specific JAR. Additionally, it requires integrating external Eclipse plugins to run the GUI. Due to this, it exposes itself to a high risk of conflicting versions, especially since it relies on older distributions of libraries. In terms of newer platforms, the same applies to Jadescript [59], CellNet [60], or MASON [61]. In each case, a JAR has to be manually added. This problem seems to be less severe for platforms based on Python (e.g., piaf [62]), JavaScript (e.g., JS-son [63]), or some AOPL-based platforms (e.g., ASTRA [50] and SARL [48]). These are deployed using PyPi, NPM, or Maven Central. The compatibility of the representative platforms with package management tools is summarised in Table 1.  
The JADE agent platform, after the release of version 4.6 in 2022, announced its publication to Maven Central, and its support for injection through common Java-based package management tools. However, the latest version currently available through Maven is JADE 4.5, while JADE 4.6 can only be obtained in the form of a JAR. Moreover, even though JADE is an open-source platform, there is no official JADE repository, and the source code can only be downloaded from the website. Neither of these aspects allows the community to monitor the progress made in framework implementation. Due to this, JADE is currently inapplicable to typical production systems. The situation is significantly better for Jadex, which has both (1) its source available on GitHub and (2) artifacts published to Maven Central. Therefore, in terms of package management, it more closely meets the standards of modern industrial-grade applications. However, Jadex artifacts are published at a very fine level of granularity. Currently, there are 144 artifacts published under the Jadex group, whereas according to the description in the Jadex-V repository, 14 of them need to be added for a minimal project configuration. Consequently, handling each version separately would be extremely inefficient in the production setup, creating concerns regarding Jadex's enterprise usage. Lastly, SPADE fully meets the standards of modern package management. Its latest version is available on PyPi and can be installed using pip (a widely known package management tool for Python). Furthermore, SPADE has its sources available on GitHub and does not require manual installation of additional dependencies.