От требований к программному коду. Практика моделе

advertisement
От требований к программному коду.
Практика моделе-центрированной
разработки
Иванов Денис
г. Иваново,
весна 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 - тренинг-консультация-разработка
Download