ач
по проектированию
программных систем
Рекомендовано ученым советом ФИВТ МФТИ
к использованию в учебном процессе факультета
при подготовке студентов по направлениям
010400 «Прикладные математика и информатика» и
010600 «Прикладные математика и физика»
Рецензенты:
д.ф.-м.н., профессор, Соколинский Л. Б.,
ведущий разработчик, Колпаков Е. А.
Аннотация
В данном сборнике представлены задачи по проектированию программных систем с использованием унифицированного языка моделирования UML2, принципов и паттернов проектирования. Сборник содержит более 120 задач с несколькими заданиями в каждой по разным разделам UML и проектирования ПО. Для каждого раздела приводятся основные понятия, для задач даны ответы и пояснения по решению. Приведены рекомендации по составлению проверочных работ с использованием задач сборника по темам проектирования.
Для слушателей курсов по объектно-ориентированному анализу и проектированию программного обеспечения, студентов технических и физико-математических специальностей, преподавателей высших учебных заведений, специалистов по программной инженерии.
Дополнительную информацию и материалы можно найти на сайте книги http://www.objectoriented.ru
При цитировании, используйте следующую информацию о книге.
Хританков А. С., Полежаев В. А., Андрианов А. И.
Проектирование на UML. Сборник задач по проектированию программных систем. 2-е. изд. – Екатеринбург.: Издательские решения, 2017. – 240 с.; ил.
ISBN 978-5-4485-7954-7
УДК 004.41+004.02+372.8
ББК 32.973.23—018
(С) Хританков А. С., 2017
(С) Полежаев В. А., 2017
(С) Андрианов А. И., 2017
ОБ АВТОРАХ
Хританков Антон Сергеевич, к.ф.-м.н.
доцент кафедры АТП, Московский физико-технический институт.
Защитил диссертацию в сфере высокопроизводительных вычислений (МФТИ / ИСА РАН). Опыт преподавания более восьми лет, научные интересы: архитектура программного обеспечения, автоматизированные и интеллектуальные методы разработки программ. Опыт работы в индустрии более 12 лет от разработчика ПО до архитектора и руководителя департамента разработки и исследований. Сертифицированный специалист по UML2 (OMG Certified UML Professional Advanced).
Email: [email protected]
Полежаев Валентин Александрович
директор по разработке и анализу данных компании Интелиор.
Окончил ВМК МГУ, автор нескольких статей по теме машинного обучения и практике применения предметно-ориентированных методов проектирования. Участвовал в разработке более десяти информационных систем, из них более половины в качестве бизнес-аналитика и архитектора.
Email: [email protected]
Андрианов Андрей Иванович
руководитель группы морфологии «Аби Продакшн» (ABBYY).
Магистр физ.-мат. наук (МФТИ), в разное время преподавал в МФТИ курсы «Алгоритмы и структуры данных», «Проектирование программных систем», «Машинное обучение». А также «Концепции языков программирования», «Промышленное программирование». Опыт разработки, проектирования архитектуры и управления проектами более 9 лет.
Email: [email protected]
ПРЕДИСЛОВИЕ КО ВТОРОМУ ИЗДАНИЮ
Проектирование – это процесс построения модели объекта, который предполагается разработать или создать. Модели в проектировании играют важную роль: модели используются для уточнения того, что нужно сделать, для прояснения способа реализации, для понимания реализуемости решения и его соответствия требованиям, для передачи знаний и распространения информации о проектируемом объекте, для планирования и ведения работ по реализации.
Во многих инженерных отраслях проектирование занимает важное место и часто регулируется государственными, промышленными стандартами или стандартами уровня предприятия. В сфере разработки программного обеспечение проектирование будущей программной системы происходит как в начале работ, так и по ходу реализации.
Важно понимать, что область знаний проектирования – это отдельная дисциплина, требующая особых навыков работы с моделями, применения методов и практик, которые обычно не используются при реализации создаваемого объекта.
На данный момент в индустрии разработки программного обеспечения сложилось несколько отраслей, каждая из которых использует несколько отличные от других методы проектирования. Среди этого разнообразия в книге уделено больше внимания проектированию прикладных программ, компонентов