What you mention is a standard case of SoC.
What I have come to understand is that it is very difficult to implement a business product that satisfies everybody.
One can implement the core business logic, but there might be a need to extend that business logic to implement customer-specific logic. While it is feasible to keep adding new features to the products, based on a demand, it would be great to have the core product stable and extend the product dynamically. Does it make any sense?
What you mention is that you want to have a core product that is extended to offer customer-specific functionality. That is common practice. What you need for example, is a way to specify plugins (eclipse/myeclipse/websphere studio are easy examples).
Has anybody tried to address such issue?
Using desing patterns with the judicious use of dynamic class-loading, yup.
This may get confused with Business Process Modelling (BPM). But I think I am talking about a lower level that BPM. Any comments would be highly appreciated.Regards,-Rajan
Having a standard codebase is useful, it will however put more stress on version control (for testing/delivery) as different client extensions might contain dependencies on specific version of the core software.