От требований к программному коду. Практика моделе-центрированной разработки Иванов Денис г. Иваново, весна 2013 Современные процессы и методологии ? www.modelware.ru - тренинг-консультация-разработка Моделе-центрированная разработка ? www.modelware.ru - тренинг-консультация-разработка Почему Model-Driven не работает? Требования Исходный код Выполняемый код Цель разработки Построение модели на уровне исходного кода НЕ ЭФФЕКТИВНО! www.modelware.ru - тренинг-консультация-разработка Требования Исходный код Исходный код Выполняемый код www.modelware.ru - тренинг-консультация-разработка Требования Исходный код • Формальный язык • Инструментальная поддержка Исходный код Выполняемый код www.modelware.ru - тренинг-консультация-разработка Как должно быть Требования Цель разработки • Формальный язык • Инструментальная поддержка Исходный код Выполняемый код www.modelware.ru - тренинг-консультация-разработка Предметные области • Предметная область – это любая область человеческой деятельности • Предметная область описывает опыт / экспертные знания www.modelware.ru - тренинг-консультация-разработка Крис Фрит. «Мозг и душа» В очень далеком прошлом наши предки тоже были одиноки. Они создавали модели материального мира, но не могли делиться этими моделями друг с другом. В то время истина не имела значения для таких моделей. Не имело значения, верно ли эти модели отражали материальный мир. Важно было только то, что эти модели работали, позволяя предсказывать, что случится дальше. Но научившись делиться своими моделями материального мира, мы обнаружили, что модели, других людей в некоторой степени отличаются от наших собственных. Среди других людей есть эксперты, у которых имеются определенно лучшие модели некоторых аспектов окружающего мира. Составляя вместе такие модели, полученные многими людьми, мы можем построить новую модель, которая лучше, чем любая из моделей, полученных каждым человеком в отдельности. При этом наши знания о мире больше не ограничиваются опытом одной жизни — они передаются из поколения в поколение. … Я считаю, что истина существует. Пока у нас есть возможность убеждаться, что одна модель материального мира работает лучше, чем другая, мы можем стремиться создавать ряд все более и более удачных моделей. В конце этого ряда, хотя он и бесконечен в математическом смысле, находится истина — истина того, как в действительности устроен мир. Достижение этой истины и есть задача науки. Наука движется вперед, создавая модели окружающего мира, делая предсказания на основе этих моделей и используя ошибки в этих предсказаниях для создания новых, лучших моделей. Теперь наука открывает нам, что наш мозг использует те же принципы в своем познании окружающего мира. Мы также начинаем понимать, каким образом наш мозг создает модели внутреннего мира других людей. Наша способность делится этими моделями и делает возможным научный поиск истины. http://blog.modelware.ru/крис-фрит-мозг-и-душа-отрывки-из-книги/ www.modelware.ru - тренинг-консультация-разработка Идеальный артефакт Создать идеальный артефакт Создать экземпляр модели предметной области Идеальный артефакт Создать модель предметной области Сформулировать правила, сопостовляющие сущности и отношения предметной области с элементами идеального артефакта. Создать шаблон артефакта Модель предметной области Правила Экзепляр модели предметной области артефакта Создать артефакт Шаблон артефакта Артефакт www.modelware.ru - тренинг-консультация-разработка Три примера •Настройки SSH-окружения •Сайт "Скоро открытие!" •Система "Status Monitor" www.modelware.ru - тренинг-консультация-разработка Предметная область SSH Class Diagram [ ssh ] Ключи 1 - RSA 2 - DSA ssh_key -id : mwID -type : mwInteger -file_name : mwString ssh_server_host_is_accessed_via_key -id : mwID -ssh_server_host_id : mwFK_ID -ssh_key_id : mwFK_ID Ключ используется для досутпа к серверу ssh_server_host -id : mwID -hostname : mwString -port : mwString -config_name : mwString -login : mwString Хост, на котором работает ssh сервер Название для конфигурации логин пользователя на удаленном host www.modelware.ru - тренинг-консультация-разработка Предметная область Web-приложение • • • • • • • • • • • Приложение содержит страницы Страница состоит из виджетов Виджеты могут включать в себя другие виджеты Виджеты принимают сигналы от пользователя В ответ на принятый сигнал виджет может запустить логику В ответ на принятый сигнал виджет может сгенерировать событие Событие может быть принять страницей В ответ на принятое событие страницы может запустить логику Событие может быть принять виджетом В ответ на принятое событие виджет может запустить логику ... www.modelware.ru - тренинг-консультация-разработка Статистика. umlbook-online Статистика. umlbook-online 963 x 100% ≈94% 1014 Статистика. sm Статистика. sm 2217 x 100% ≈84% 2615 Итоги • Модели предметных областей - это ВАЖНО • • Документирование своего и чужого опыта Автоматическое создание качественных артефактов ВОЗМОЖНО • • • Идеология "сломать - построить" Повышения уровня абстракции Создание специализированных DSL (Domain Specific Language) www.modelware.ru - тренинг-консультация-разработка Ссылки Тренинги - http://www.modelware.ru/ Блог - http://blog.modelware.ru/ Материалы - http://www.uml3.ru/ Книга - http://book.uml3.ru/ www.modelware.ru - тренинг-консультация-разработка