
…rchitecture of a software means separating the actual application from its supporting technologies. Your actual application doesn’t know about databases, AJAX requests, or the GUI; instead, it’s composed of use cases and domain units representing the concepts covered by your software, regardless of the actors that execute the use cases or where the data is persisted.