- Software Support represents a substantial portion of the lifetime costs of any complex system. A flexible, modular architecture is essential for ensuring:
all of which are necessary for software that can be supported in an efficient and cost effective manner. Many problems associated with software support can be traced to deficiencies in the way the original software product was designed. Lack of attention to the design of modular software architectures during development can cause excessive software support problems and costs. ADempiere is designed to be as flexible as possible and to accommodate change. Unless the system architecture allows for change, modifications to the software are likely to be difficult and defect-prone. ADempiere's software architecture carefully addresses abstraction, encapsulation, and information hiding to minimize dependencies. By maximising use of object-oriented design, the software can be easily modified. ADempiere's Active Data Dictionary ensures that software support can be simplified by ensuring that changes are made in one location with a consistent impact throughout the whole of the application. Additionally, ADempiere uses no third-party toolsets which may become unsupported due to lack of interest by their respective vendors. Other than for the Oracle database itself, source code for all aspects of the system is open and available ensuring that the user community will always be able to provide support for all aspects of the system.