I have a CMS and a phpBB setup...both use separate logins...it's not always easy to integrate the two...assuming you could in theory, redesign the both to be completely independant systems and yet communicate easy when both installed.
then, in practise, this is probably an integration problem. One possible solution is to expose some of the API of both application as services (not necessarily web services) and glue them together somehow (the somehow is the trickier part).
I'm not looking for techniques to refactor existing codebases or modifying existing systems. Rather theoretical techniques or methods in building extendable entire applications...
build from the beginning? good in theory to build from scratch but impractical due to resource constraints in most cases. Also, very difficult to know which parts should be "extendible" unless you have some in-depth domain knowledge.
getting towards the application design level, may be some form of dependency injection (DI) could be used. Allowing your application to be able to use dependency injection is, i think, quite tricky to retrofit. May be if the development process includes TDD and uses Mocks extensively, the resulting application is more fitted to use DI?[/quote]