Software Development, Software Engineering, Software Architecture, Software Design, Engineering.
changes. Finally to really nail this point home, testability is improved as well — it can be tested separately because the functionality is nicely encapsulated. You can test the functionality with module or unit level tests. These are much easier to implement than integration tests for example.