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.