Web applications are one of the fastest growing types of software systems today. Structurally, they are composed out of two parts: the server side, used for data-access and business logic, and the client-side used as a user-interface. In recent years, with developers building complex interfaces, the client side is playing an increasingly important role. Unfortunately, the techniques and tools used to support development are not as advanced as in other disciplines. From the userÂ’s perspective, the client-side offers a number of features that are relatively easy to distinguish. However, the same cannot be said for their implementation details. This makes code understanding, maintenance, and reuse difficult. The goal of the work presented in this paper is to improve reusability, maintainability and performance of client-side web applications by identifying the code that implements a particular feature. We have evaluated the approach based on three different experiments: extracting features, extracting library functionalities, and page optimization. The evaluation shows that the method is able to identify the implementation details of individual features, and that by extracting the identified code considerable savings in terms of code size and increased performance can be achieved.
This article addresses a formal model of a distributed computation multi-agent system. This model has evolved from the experimental research on using multi-agent systems as a ground for developing fuzzy cognitive maps. The main paper contribution is a distributed computation multi-agent system definition and mathematical formalization based on automata theory. This mathematical formalization is tested by developing distributed computation multi-agent systems for fuzzy cognitive maps and artificial neural networks – two typical distributed computation systems. Fuzzy cognitive maps are distributed computation systems used for qualitative modeling and behavior simulation, while artificial neural networks are used for modeling and simulating complex systems by creating a non-linear statistical data model. An artificial neural network encapsulates in its structure data patterns that are hidden in the data used to create the network. Both of these systems are well suited for formal model testing. We have used evolutionary incremental development as an agent design method which has shown to be a good approach to develop multi-agent systems according to the formal model of a distributed computation multi-agent system.