One of the most important features of any application program is its degree of customization, that is, the ability to customize behavior to the requirements of a particular user without developing a separate version of the product and making changes to the software part.
Typically, customization is used in business process automation systems of large enterprises, because the size of the organization depends on the complexity of its internal structure and each has its own characteristics. If it is possible to create a standard product for the management of a small company, taking into account all its needs, then for medium and large organizations it is practically impossible to develop such a program, and designing a unique automated system for each client will be expensive for the client in the first place. The developers of such systems, in their turn, will find it difficult to support a variety of unique software products created for each client.
All this became the reason for creation in many companies of their own subdivisions, engaged in development and support of automated process control systems, i.e. non-core production inside the company is created, which will not affect positively both the quality of such products and profitability of an enterprise. The situation fundamentally changed when 1C appeared on the market, based on the open software architecture that allows you to expand functionality by writing extensions to the embedded programming language. Later in the market of information services many similar products appeared, for example, a complex from SAP AG company, which was a worthy competitor to the solution from 1C.Developers are constantly engaged in improvement and expansion of the functionality of their projects, of course, it is made with the use of customization tools.
Thus, the program for the qualities of customization must have a wide list of options, or have an open architecture that allows you to increase its functionality without interference in the basic code. Below we present the variants of creation of extensible application architecture:
– Applying metadata (information describing the structures of the data used by the program);
– development of a connection structure for additional components, the design of which should be carried out according to the rules defined in the main product;
– adding to the product separately compilable sections of program code created in the built-in application-level programming language.