Основы проектирования программного обеспечения
2020/21 учебный год г., Институт математики и информационных технологий, I курс2 семестр(ы)
Специальности:
- 09.03.04 - Программная инженерия.
Содержание лекционных занятий.
Гл.1. Методология проектирования программного обеспечения.
- 1.1. Введение в процесс создания программного обеспечения.
- 1.2. Задачи проектирования программного обеспечения.
- 1.3. Основные методы проектирования: разработка архитектуры и детальное проектирование.
Гл.2. Модели проектирования программного обеспечения.
- 2.1. Визуальное моделирование.
- 2.2. Виды моделей. Диаграмма сущность-связь. Диаграмма потоков данных. Структурные модели предметной области: глоссарий, онтология, представление объектов данных, диаграмма вариантов использования. Модель конечных автоматов.
- 2.3. Шаблоны проектирования, спецификация, кодогенерация.
Гл.3. Оценка решений проектирования программного обеспечения.
- 3.1. Атрибуты качества.
- 3.2. Метрики проектирования.
- 3.3. Способы измерения программного кода и документации.
Темы докладов для практических занятий.
Тема 1. Исследование примеров модульной структуры программы. (1) Анализ стыковки (coupling). (2) Анализ связности (coherence). (3) Анализ модульной структуры программы на основе графовой модели. (4) Анализ модульной структуры программы с использованием библиотек программных функций.
Тема 2. Разбор примеров решений детального проектирования. (1) Примеры интерфейсов для взаимодействия программных модулей. (2) Примеры интерфейсов пользователя. (3) Примеры решений с применением программных библиотек и повторно используемого кода. (4) Примеры проектирования алгоритма. (5) Примеры проектирования структуры данных.
Тема 3. Разбор примеров решений по архитектуре программной системы. (1) Примеры для автономных программных приложений. (2) Примеры для мобильных сервисов. (3) Примеры для распределенных систем. (4) Примеры для систем управления автономными объектами. (5) Примеры для информационных систем. (6) Примеры для системного ПО.
Тема 4. Изучение способов измерения качества на примерах решений проектирования. (1) Анализ графовых моделей. (2) Верификация моделей. (3) Аудит (инспектирование) кода. (4) Автоматический статический анализ кода. (5) Анализ документации. (6) Экспериментальные измерения работы ПО.
Список литературы.
- Макконнелл С. Совершенный код. Мастер-класс / Пер. с англ. — М. : Издательство «Русская редакция», 2010. — 896 стр.
- Гецци К., Джазайери М., Мандриоли Д. Основы инженерии программного обеспечения / Пер. с англ. 2-е изд. СПб.: БХВ-Петербург, 2015. 832 с.
- Мандел, Т. Разработка пользовательского интерфейса. / Т. Мандел. – Москва: ДМК Пресс, 2007. – 419 с. http://www.biblioclub.ru/131896_Razrabotka_polzovatelskogo_interfeisa.html
- Мацяшек Л.А. Анализ требований и проектирование систем. М.: Издательский дом "Вильямс", 2002. 428с.
- Баканов А. С. Проектирование пользовательского интерфейса: эргономический подход. / А. С. Баканов, А. А. Обознов. – Москва : Институт психологии РАН, 2009. – 185с. http://www.biblioclub.ru/87305_Proektirovanie_polzovatelskogo_interfeisa_ergonomicheskii_podkhod.html
- Камаев В.А., Костерин В.В. Технологии программирования. Учебник, 2-е изд., перераб. и доп. М.: Высшая школа, 2006. 454 с.
- Diehl S. Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software. Berlin Heidelberg: Springer-Verlag, 2007. 187 p.
Инструкции по обучению
- По каждой теме для докладов на практических занятиях 1-4 обучающийся выбирает подтему. Самостоятельно выбирает пример программы или программной системы (существующий или теоретический). Выделяет конкретную задачу проектирования для данного примера. Выбранная тема (пример) высылается по email лектору.
- Лектор уточняет формулировку примера и задачи проектирования, определяет источники теоретических методов для изучения по выбранной задаче, отправляет обучающемуся. Согласованный выбор отражается в журнале занятий лектором.
- Обучающийся готовит в эл.виде доклад (презентацию) по утверждённому примеру задаче проектирования ПО. Отправляет презентацию по email лектору. Данный пункт требует отправки презентации каждую неделю (либо первую версию по новой теме, либо скорректированный вариант по одной из предыдущих тем).
- Лектор оценивает презентацию и высылают комментарии по ее улучшению.
Шаги 1-4 повторяются еженедельно. Каждая еженедельная итерация эквивалентна проведению 3 часов аудиторных занятий (1 ч. лекции + 2 ч. практики). Ведется учет в журнале учебной дисциплины.
В итоге, к концу семестра каждый обучающийся должен сформировать набор из 4 презентаций (докладов), каждая должна быть скорректирована не менее 1 раза по результатам комментариев от лектора. Аттестационное занятие будет построено в виде индивидуального собеседования с обучающимся по представленным презентациям (докладам).