Методология проектирования и разработки программного

advertisement
МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ РОССИСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«Московский физико-технический институт (государственный университет)»
МФТИ
«УТВЕРЖДАЮ»
Проректор по учебной и методической работе
_______________ Д.А. Зубцов
«___»______________ 20___ г.
Рабочая программа дисциплины (модуля)
по дисциплине:
по направлению:
профиль подготовки/
магистерская программа:
факультет:
кафедра:
курс:
квалификация:
Методология проектирования и разработки программного обеспечения
Прикладные математика и физика (магистратура)
Интеллектуальный анализ данных
управления и прикладной математики
проблем передачи информации и анализа данных
1
магистр
Семестр, формы промежуточной аттестации: 10 (Весенний) - Экзамен
Аудиторных часов: 34 всего, в том числе:
лекции: 34 час.
практические (семинарские) занятия: 0 час.
лабораторные занятия: 0 час.
Самостоятельная работа: 5 час. всего, в том числе:
задания, курсовые работы: 0 час.
Подготовка к экзамену: 30 час.
Всего часов: 69, всего зач.ед.: 2
Программу составил: Л.И. Рубанов, кандидат технических наук, доцент
Программа обсуждена на заседании кафедры
14 мая 2014 года
СОГЛАСОВАНО:
Заведующий кафедрой
А.П. Кулешов
Декан факультета управления и прикладной математики
А.А. Шананин
Начальник учебного управления
И.Р. Гарайшина
1. Цели и задачи
Цель дисциплины
Сформировать у студента совокупность знаний и навыков, относящихся к проектированию и
разработке промышленных программных средств.
Задачи дисциплины
- изучение существующих методов проектирования и действующей нормативной базы;
- освоение современных технологий разработки и реализации проектов программных
средств, а также основ управления проектами.
2. Место дисциплины (модуля) в структуре образовательной программы бакалавриата (магистратуры
Дисциплина «Методология проектирования и разработки программного обеспечения» включает в себя разделы, которые могут быть отнесены к вариативной части цикла М.1.
Дисциплина «Методология проектирования и разработки программного обеспечения» базируется на
дисциплинах:
Информатика и вычислительная математика;
Теория и реализация языков программирования;
Алгоритмы и сложность вычислений.
3. Перечень планируемых результатов обучения по дисциплине (модулю), соотнесенных с планируемыми результатами освоения образовательной
Освоение дисциплины «Методология проектирования и разработки программного обеспечения»
направлено на формирование следующих общекультурных, общепрофессиональных и профессиональных компетенций бакалавра/магистра:
способность применять теорию и методы математики для построения качественных и
количественных моделей объектов и процессов в естественной сфере деятельности (ОПК-2);
способность понимать ключевые аспекты и концепции в области специализации (ОПК-3);
способность выбирать и применять подходящее оборудование, инструменты и методы
исследований для решения задач в избранной предметной области (ПК-3);
способность критически оценивать применимость применяемых методик и методов (ПК-4).
В результате освоения дисциплины обучающиеся должны
знать:
- методы проектирования и разработки промышленного и встроенного программного обеспечения;
- современные технологии реализации программных проектов и сопутствующие стандарты;
- специфику проектирования и разработки программного обеспечения высокоэффективных
метамоделей и систем многодисциплинарной оптимизации;
уметь:
- разрабатывать программные проекты для промышленных и встроенных систем с соблюдением отечественных и зарубежных стандартов;
- осуществлять эффективную реализацию программных проектов на основных исполнительских и руководящих должностях;
- применять типовые проекты и практики в качестве основы для собственных уникальных
программных решений;
2
- производить оценку рисков и осознанно выбирать оптимальные подходы и технологии
разработки, тестирования и сопровождения программного обеспечения;
владеть:
- навыком освоения большого объема информации;
- навыками постановки научно-исследовательских задач и навыками самостоятельной работы.
4. Содержание дисциплины (модуля), структурированное по темам (разделам) с указанием отведенного на них количества академических часов и видов учебных занятий
4.1. Разделы дисциплины (модуля) и трудоемкости по видам учебных занятий
№
Тема (раздел) дисциплины
Общая методика и организационно-техническое обеспечение работ
Технические аспекты разра2
ботки
Практические рекомендации
по проектированию некото3
рых категорий промышленного ПО
Итого часов
Общая трудоёмкость
1
Виды учебных занятий, включая самостоятельную работу
Практич.
Задания,
Лаборат.
Самост.
Лекции
(семинар.)
курсовые
работы
работа
занятия
работы
15
2
11
2
8
1
34
39 час., 1 зач.ед.
5
4.2. Содержание дисциплины (модуля), структурированное по темам (разделам)
Семестр: 10 (Весенний)
1. Общая методика и организационно-техническое обеспечение работ.
Краткий обзор истории технологий и методов разработки ПО в отечественной практике и за
рубежом.
Классификация программных систем: отличительные признаки, количественные факторы.
Особенности проектирования промышленного и встроенного ПО.
Обзор существующих моделей и технологий разработки, областей их применения. Спиральная и водопадная модели. Итеративно-инкрементальные подходы к разработке ПО (RUP,
OpenUP). Разработка ПО на основе формальных методов (Cleanroom). Гибкие методологии
разработки (Agile, Scrum, XP, MSF). Технологии визуального программирования (RAD).
Жизненный цикл ПО и его нормативная база. Современные стандартов разработки программных средств применительно к промышленным и встроенным системам.
Основные этапы проектирования и разработки ПО в рамках известных моделей. Процессы
проекта. Использование инструментальных средств для управления проектом.
Коллективная разработка промышленного ПО. Типовые структуры проектных групп и распределение обязанностей. Средства поддержки коллективной разработки (контроль версий,
управление изменениями и бранчингом).
Проектирование и разработка ПО с учётом требований системы менеджмента качества по
ГОСТ Р ИСО 9001-2008. Состав и порядок ведения программной документации. Требования
ЕСПД (ГОСТ 19.ххх) и их актуализация.
3
2. Технические аспекты разработки.
Выбор между процедурно-ориентированным, ориентированным на данные и объектноориентированным подходами при разработке промышленного и встроенного ПО.
Выбор языка программирования: определяющие факторы и сопутствующие риски. Сравнительный анализ типичных трудностей и слабых мест, возникающих при использовании языков C, C++, Java. Проблемы и решения.
Алгоритмизация и выбор эффективного алгоритма с учетом характеристик вычислительной
сложности. Использование существующего программного кода. Рефакторинг и реинжиниринг. Реверс-инжиниринг и методы противодействия.
Проектирование и тестирование межпрограммных и внутренних интерфейсов для промышленного ПО и встроенных систем.
Отладка и тестирование промышленного ПО. Методы автоматической верификации программ в процессе разработки. Контроль качества и сертификация встроенных программных
систем. Технологии сопровождения и поддержки.
3. Практические рекомендации по проектированию некоторых категорий промышленного
ПО.
Специфика разработки ПО для интенсивного взаимодействия с СУБД.
Распределенные программные системы, Интернет-приложения, сервисы для облачных вычислений. Алгоритмы балансирования нагрузки и распределенные параллельные вычисления
(применительно к стандарту MPI).
Разработка встроенного ПО и программных систем реального времени. Применение технологий распараллеливания OpenMP и CUDA во встроенных системах.
Разработка вспомогательного и инструментального ПО для проведения поисковых исследований и поддержки управленческих решений.
5. Описание материально-технической базы, необходимой для осуществления образовательного процесса по дисциплине (модулю)
Учебная аудитория, оснащенная мультимедийным оборудованием (проектор или плазменная
панель), доской.
6. Перечень основной и дополнительной литературы, необходимой для освоения дисциплины
(модуля)
Основная литература
1. Брукс Ф. Мифический человеко-месяц или Как создаются программные системы. СПб.:
Символ-Плюс, 2010. – 304 с.
2. Кантор М. Управление программными проектами. Практическое руководство по разработке успешного программного обеспечения. М.: Вильямс, 2002. – 176 с.
3. Фатрелл Р.Т., Шафер Д.Ф., Шафер Л.И. Управление программными проектами. Достижение оптимального качества при минимуме затрат. М.: Вильямс, 2003. – 1136 с.
4. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. СПб.: Питер, 2002. – 496 с.
5. ГОСТ Р ИСО/МЭК 12207-2010. Информационная технология. Системная и программная
инженерия. Процессы жизненного цикла программных средств.
6. ГОСТ Р ИСО/МЭК ТО 15271-2002. Информационная технология. Руководство по применению ГОСТ Р ИСО/МЭК 12207.
4
7. ГОСТ Р ИСО/МЭК ТО 16236-2002. Программная инженерия. Руководство по применению
ГОСТ Р ИСО/МЭК 12207 при управлении проектом.
8. Комплект ГОСТ 19.ХХХ. Единая система программной документации (ЕСПД).
9. ГОСТ Р ИСО 9001-2008. Системы менеджмента качества. Требования.
10. Кнут Д.Э. Искусство программирования. Т. 1: Основные алгоритмы (М.: Вильямс, 2006. –
720 с.). Т. 2: Получисленные методы (М.: Вильямс, 2007. 832 с.). Т. 3: Сортировка и поиск
(М.: Вильямс, 2007. – 824 с.). Т. 4: Комбинаторные алгоритмы. Вып. 2, 3, 4 (М.: Вильямс,
2007-2008).
11. Монахов В. Язык программирования Java и среда NetBeans. Изд-е 3. СПб.: БХВПетербург, 2011. – 704 с.
12. Гарсиа-Молина Г., Ульман Дж., Уидом Д. Системы баз данных. Полный курс. М.: Вильямс, 2004. – 1088 с.
13. Бек К. Экстремальное программирование: разработка через тестирование. СПб.: Питер,
2003. – 224 с.
14. Кон М. Scrum: гибкая разработка ПО. Описание процесса успешной гибкой разработки
программного обеспечения с использованием Scrum. М.: Вильямс, 2011. – 566 с.
7. Перечень учебно-методического обеспечения для самостоятельной работы обучающихся по
дисциплине (модулю)
1. Страуструп Б. Язык программирования С++. Специальное издание. М.: Бином, 2011. – 1136
с.
8. Перечень ресурсов информационно-телекоммуникационной сети «Интернет», необходимых
для освоения дисциплины (модуля)
1. docs.pravo.ru
2. protect.gost.ru
9. Перечень информационных технологий, используемых при осуществлении образовательного процесса по дисциплине (модулю), включая перечень программного обеспечения и информационных справочных систем (при необходимости)
На лекционных занятиях используются мультимедийные технологии, включая демонстрацию
презентаций.
10. Методические указания для обучающихся по освоению дисциплины
Студент, изучающий дисциплину, должен, с одной стороны, овладеть общими понятийным
аппаратом, а с другой стороны, должен научиться применять теоретические знания на практике.
В результате изучения дисциплины студент должен знать основные определения, понятия,
аксиомы, методы доказательств.
Успешное освоение курса требует напряженной самостоятельной работы студента. В программе курса отведено минимально необходимое время для работы студента над темой. Самостоятельная работа включает в себя:
- чтение и конспектирование рекомендованной литературы;
- проработку учебного материала (по конспектам занятий, учебной и научной литературе),
подготовку ответов на вопросы, предназначенные для самостоятельного изучения, доказательство отдельных утверждений, свойств, решение задач;
- подготовка к экзамену.
5
Руководство и контроль за самостоятельной работой студента осуществляется в форме индивидуальных консультаций.
Важно добиться понимания изучаемого материала, а не механического его запоминания. При
затруднении изучения отдельных тем, вопросов следует обращаться за консультациями к лектору.
11. Фонд оценочных средств для проведения промежуточной аттестации по итогам обучения
Приложение.
6
ПРИЛОЖЕНИЕ
ФОНД ОЦЕНОЧНЫХ СРЕДСТВ
ДЛЯ ПРОВЕДЕНИЯ ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ ОБУЧАЮЩИХСЯ
ПО ДИСЦИПЛИНЕ
«Методология проектирования и разработки программного обеспечения»
1. Перечень типовых контрольных заданий, используемых для оценки знаний, умений, навыков
Перечень контрольных вопросов к экзамену:
1. Этапы развития промышленной разработки программного обеспечения в отечественной и мировой практике. Эволюция технологий проектирования и разработки, количественные факторы и их
тренды.
2. Классификация программных систем. Отличительные особенности промышленного и встроенного программного обеспечения.
3. Важнейшие модели проектирования и разработки программных систем. Области применения, исходные требования, прочие предпосылки.
4. Сравнение водопадной, итеративной и спиральной парадигм. Сильные и слабые стороны, риски,
определяющие факторы выбора, условия эффективного применения.
5. Концепция жизненного цикла программного обеспечения. Модели жизненного цикла и их обязательные компоненты.
6. Нормативная база, относящаяся к жизненному циклу. Действующие российские и международные стандарты, их структура и взаимосвязь.
7. Главные элементы стандарта ГОСТ Р ИСО/МЭК 12207-2010, регламентирующего процессы жизненного цикла программного обеспечения.
8. Назначение, внутренняя структура и взаимосвязь процессов жизненного цикла (по выделяемым
группам процессов).
9. Типовой проект промышленной программной системы: процессы, управление, документация.
10. Типовой проект встроенного программного обеспечения: процессы, управление, документация.
11. Группа технических процессов разработки программного обеспечения в контексте системы. Задачи и выходы индивидуальных процессов.
12. Группа специальных процессов программных средств в части реализации программного обеспечения. Задачи и выходы индивидуальных процессов.
13. Группа специальных процессов программных средств в части поддержки программного обеспечения. Задачи и выходы индивидуальных процессов.
14. Актуальные элементы прежних стандартов ЕСПД (ГОСТ 19.ХХХ), ГОСТ 34.601-90, ГОСТ Р
ИСО/МЭК 12207-99.
15. Итеративно-инкрементальные подходы к разработке программного обеспечения (на примере
RUP).
16. Гибкие методологии разработки программного обеспечения. Основные принципы Agileметодологии.
17. Сравнительный анализ технологий Scrum и экстремального программирования (XP).
18. Технологии и программные средства визуального программирования (RAD).
19. Разработка программного обеспечения на основе формальных методов.
20. Эскиз проекта разработки ПО (для предложенного примера создаваемого программного средства).
7
21. Технические аспекты проекта: выбор ориентации, языков программирования, алгоритмов, методов тестирования и сопровождения (для предложенного примера создаваемого программного средства).
2. Критерии оценивания
Оценка
Баллы
10
отлично
9
8
7
хорошо
6
5
4
удовлетворительно
3
неудовлетворительно
2
Критерии
Выставляется студенту, показавшему всесторонние, систематизированные, глубокие знания учебной программы дисциплины,
проявляющему интерес к данной предметной области, продемонстрировавшему умение уверенно и творчески применять их на
практике при решении конкретных задач, свободное и правильное
обоснование принятых решений.
Выставляется студенту, показавшему всесторонние, систематизированные, глубокие знания учебной программы дисциплины
и умение уверенно применять их на практике при решении конкретных задач, свободное и правильное обоснование принятых
решений.
Выставляется студенту, показавшему систематизированные,
глубокие знания учебной программы дисциплины и умение уверенно применять их на практике при решении конкретных задач,
правильное обоснование принятых решений, с некоторыми недочетами.
Выставляется студенту, если он твердо знает материал, грамотно и по существу излагает его, умеет применять полученные
знания на практике, но недостаточно грамотно обосновывает полученные результаты.
Выставляется студенту, если он твердо знает материал, грамотно и по существу излагает его, умеет применять полученные
знания на практике, но допускает в ответе или в решении задач
некоторые неточности.
Выставляется студенту, если он в основном знает материал,
грамотно и по существу излагает его, умеет применять полученные знания на практике, но допускает в ответе или в решении задач достаточно большое количество неточностей.
Выставляется студенту, показавшему фрагментарный, разрозненный характер знаний, недостаточно правильные формулировки базовых понятий, нарушения логической последовательности в изложении программного материала, но при этом он освоил
основные разделы учебной программы, необходимые для дальнейшего обучения, и может применять полученные знания по образцу в стандартной ситуации.
Выставляется студенту, показавшему фрагментарный, разрозненный характер знаний, допускающему ошибки в формулировках базовых понятий, нарушения логической последовательности в изложении программного материала, слабо владеет основными разделами учебной программы, необходимыми для
дальнейшего обучения и с трудом применяет полученные знания
даже в стандартной ситуации.
Выставляется студенту, который не знает большей части основного содержания учебной программы дисциплины, допускает
грубые ошибки в формулировках основных принципов и не умеет
8
1
использовать полученные знания при решении типовых задач.
Выставляется студенту, который не знает основного содержания учебной программы дисциплины, допускает грубейшие
ошибки в формулировках базовых понятий дисциплины и вообще
не имеет навыков решения типовых практических задач.
3. Методические материалы, определяющие процедуры оценивания знаний, умений, навыков
и (или) опыта деятельности
Экзамен проводится в устной форме.
При проведении устного экзамена обучающемуся предоставляется 30 минут на подготовку. Опрос
обучающегося по билету на устном экзамене не должен превышать двух астрономических часов.
Во время проведения экзамена обучающиеся могут пользоваться программой дисциплины, а также
справочной литературой, вычислительной техникой и проч.
9
Download