Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Covariance and contravariance: conflict without a cause
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
A Theory of Objects
Modern Information Retrieval
Second-Wave Enterprise Resource Planning Systems
Second-Wave Enterprise Resource Planning Systems
A survey on tree edit distance and related problems
Theoretical Computer Science
European Journal of Information Systems - Special section: PACIS 2004
Inside Microsoft Dynamics AX 4.0
Inside Microsoft Dynamics AX 4.0
Programming Microsoft Dynamics NAV: Create, modify, and maintain applications in NAV 5.0, the latest version of the ERP application formerly known as Navision
Hi-index | 0.01 |
Most software engineering techniques that deal with software products customization are based on anticipation: The software designer has to foresee, somehow, the future needs for customization so that other programmers can adapt the software product with as little modifications as possible (programmers hide implementation details behind previously defined interfaces, or alternatively, they refine some pre-defined properties). While practical, this approach is unfortunately not completely satisfactory for Enterprise Resource Planning systems (ERPs). These software products have to be customizable for numerous and various local contexts; they cover a very large domain, one that cannot be fully comprehended - hence accurate anticipation is difficult. To solve this problem, an extreme measure is to give the programmers the means to do modifications in place, directly in the source code. This approach trades control for flexibility. Unfortunately, it also makes the customized software product very sensitive to upgrades. We propose a more mitigated solution, that does not require accurate anticipation and yet offers some resilience to the evolution of the base software product through the use of code quantification. We introduce the Eggther framework for customization of evolvable software products in general and ERP systems in particular. Our approach is based on the concept of code query by example. The technology being developed is based on an initial empirical study on practices around ERP systems. We motivate our design choices based on those empirical results, and we show how the proposed solution helps with respect to the upgrade problem.