Engineering Adaptive Web Applications: A Domain Engineering Framework