There are problems with Traditional Software Engineering and with Agile Software Development. A new approach called Agile Software Engineering that combines the best of both is proposed and an aspect of this approach described. The Dual Application Model involves the development of a logical software application focused on capturing the functional
requirements and a physical software application focused on transforming the logical application to meet the non-functional requirements. It has advantages and disadvantages like any approach to software development but meets two of the principles proposed for Agile Software Engineering. Frameworks and tools are proposed to support the Dual Application Model but are not essential to the approach. The approach provides an almost complete separation of concerns
between defining and specifying (in code) the domain
solution / software problem for which the domain
experts are primarily responsible and designing and
implementing the software solution to meet the nonfunctional
requirements for which the software
developers are primarily responsible.