Domain Driven Design DDD
DDD это подход к проектированию систем, который говорит как и в каком порядке нужно проектировать структуру класов приложения. Основная идея — что проектирование должно базироваться на объектах, определяющую предметную область (domain), которые содержат в себе не только свойства, но и бизнес-логику. А доступ к данным и отображение — вещи второстепенные.
Такой подход позволяет больше думать о том, что происходит в системе, чем думать о том, как это происходит. По моему опыту, откладывание проектирование базы данных, или хотя бы использование безсхемного хранения данных, очень ускоряет разработу прототипа, а затем и конечного продукта.
Для проектирования я использую Activity Diagram и Sequencess Diagram в Visual Paradigm. Очень удобно.
По теме:
Шаблоны DDD описаны на wiki,
Введение DDD — отлично прокомментирован сам подход на блоге Александра Кондуфорова
Business domains for developers — о сути DDD и инструментах
Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем — книга о DDD, наш ведущий разработчик уже очень хорошо о ней отозвался.
Самое главное в разговоре с разработчиками о DDD, напоминать, что третья D это Design, а не Development :)