DMARF AND GIPSY High Level Architecture and Requirements Analysis
This work addresses quality assessment for organizations using open-source software, but it appears incremental as it applies existing quality metrics and refactoring methods to specific case studies.
The researchers tackled the problem of assessing quality in open-source systems by analyzing two case studies (DMARF and GIPSY) using metrics like Java classes/methods and UML diagrams, resulting in the identification of code smells and a plan for system-level refactoring to enhance quality and performance.
In the current scenario, many organizations invest on open-source systems which are becoming popular and result in rapid growth, where in many of them have not met the quality standards which resulted in need for assessing quality. Initially we represent our work by analyzing the two open source case studies which are (1) Distributed Modular Audio Recognition Framework (DMARF) is an open-source framework which consists of Natural Language Processing (NLP) implemented using Java which facilitates extensibility by adding new algorithms, (2) General Intensional Programming System (GIPSY) is a platform designed to support intensional programming languages which are built using intensional logic and their imperative counter-parts for the intensional execution model. During this background study we identified few metrics which are used to assess the quality characteristics of a software product defined by ISO standards. Among the metrics, we identified the number of the java classes and methods using SonarQube. Followed by that, the actors and stakeholders have been categorized and focused on the evolution of fully dressed use cases. Besides, we analyzed the requirements and compiled the conceptual UML domain model diagrams with the responsibilities and relationships based on the functionalities, which leads to the creation of the class diagrams. Later the analysis and interpretation of results has been done using the metric tools to verify results which have been implemented and to identify the code smells accordingly. Finally the implication is towards performing the system level refactoring by applying appropriate refactoring methods to enhance the quality and performance of the open source systems. Besides, the respective test cases have been portrayed to ensure that there is not much behavioral change with the existing architecture.