1. Цели, задачи и результаты изучения дисциплины Данный курс позволяет аспирантам получить основы знаний по современным методологиям разработки программного продукта коммерческого качества, ознакомиться с методами коллективной работы над программным проектом, современными отечественными и мировыми требованиями и стандартами на создаваемый программный продукт (IEEE/ISO/IEC, CMMI for Development, ver.1.3, ГОСТ). Он позволяет научиться выбирать наиболее подходящую методологию разработки программного продукта, учитывая цели конкретного проекта, планировать работу над программным проектом, создавать и анализировать требования и спецификации, вносить изменения в требования по ходу разработки, использовать методологию модульного подхода в процессе проектирования и разработки, выбирать и использовать разнообразные методы проверки кода, оценивать и управлять качеством создаваемого программного продукта, а также определять уровень детальности программной документации для целей сопровождения программного изделия. Аспиранты приобретают первоначальный опыт, изучая программный проект, разработанный с помощью современных инструментальных средств технологической поддержки для разработки программного продукта, и внося в него небольшие изменения. Результаты обучения (компетенции) выпускника ООП, на формирование которых ориентировано изучение дисциплины «Процессы разработки качественного программного продукта» в соответствии с ФГОС. Код ОПК-1 ОПК-7 ПК-3 ПК-4 ПК-6 ПК-7 Результат обучения (компетенция) выпускника ООП владеть методологией теоретических и экспериментальных исследований в области профессиональной деятельности владеть методами проведения патентных исследований, лицензирования и защиты авторских прав при создании инновационных продуктов в области профессиональной деятельности способность понимать и анализировать направления развития IT в области математического и программного обеспечения вычислительных машин, комплексов и компьютерных сетей, прогнозировать эффективность функционирования таких систем способность проектировать сложные системы математического и программного обеспечения вычислительных машин, комплексов и компьютерных систем способность разрабатывать математическое и программное обеспечение вычислительных машин, комплексов и компьютерных систем, организовывать их тестирование и отладку способность анализировать фундаментальные и прикладные проблемы разработки математического и программного обеспечения вычислительных машин, комплексов и компьютерных систем в условиях становления современного информационного общества Планируемые результаты изучения дисциплины, обеспечивающие достижение цели изучения дисциплины «Процессы разработки качественного программного продукта» и её вклад в формирование результатов обучения (компетенций) выпускника ООП: - владеть методологией теоретических и экспериментальных исследований в области профессиональной деятельности; - владеть методами проведения патентных исследований, лицензирования и защиты авторских прав при создании инновационных продуктов в области профессиональной деятельности; 2 - способность понимать и анализировать направления развития IT в области математического и программного обеспечения вычислительных машин, комплексов и компьютерных сетей, умение выбирать перспективные методологии разработки программного обеспечения, способность прогнозировать эффективность функционирования таких систем; - способность проектировать сложные системы математического и программного обеспечения вычислительных машин, комплексов и компьютерных систем; - способность разрабатывать математическое и программное обеспечение вычислительных машин, комплексов и компьютерных систем, организовать их тестирование и отладку. 2. Место дисциплины в структуре ООП Дисциплина «Процессы разработки качественного программного продукта» преподается на 2 году обучения аспиранта. Дисциплина опирается на дисциплины математического, программного и аппаратного циклов. 3. Распределение трудоёмкости освоения дисциплины по видам учебной работы и формы текущего контроля и промежуточной аттестации 3.1. Виды учебной работы Виды учебной работы Лекции (Л) Лабораторные занятия (ЛЗ) Практические занятия, семинары (ПЗ) Контроль самостоятельной работы аспирантов (КСА) Самостоятельная работа аспирантов 1 (СРА) в том числе творческая проблемно-ориентированная самостоятельная работа аспирантов 2 (ТСРА) Экзамены (Э) (подготовка, сдача) Общая трудоемкость освоения дисциплины3 Трудоёмкость по семестрам, ач 8-й семестр 2 Итого, ач 2 9 97 9 97 18 18 18 в академических часах, ач в зачётных единицах, зет 18 144 4 3.2. Формы текущего контроля и промежуточной аттестации Количество по семестрам Формы текущего контроля и промежуточной аттестации 3 семестр. Итого - Текущий контроль Контрольные работы (КРб), шт. Коллоквиумы (Кк), шт. Подробное описание в разделе 8. Подробное описание в разделе 8. 3 Общую трудоемкость освоения дисциплины определяют с учетом всех видов учебной работы (аудиторной и самостоятельной). 1 2 3 Расчетно-графические работы (РГР), шт. Рефераты (Реф), шт. Курсовые проекты (КП), шт. Курсовые работы (КР), шт. Промежуточная аттестация Зачеты, (З), шт. 1 Экзамены, (Э), шт. 1 4. Содержание и результаты обучения Вклад дисциплины в формирование результатов обучения выпускника (компетенций) и достижение обобщённых результатов обучения (описаны в разделе 1) происходит путём освоения содержания обучения и достижения частных результатов обучения, описанных в данном разделе. 1. 1.1. 2. 2.1. 3. 3.1. 4. 4.1. 5. 5.1. 6. 6.1. 7. 7.1. 8. 8.1. 9. 9.1. 4.1. Разделы дисциплины и виды учебной работы Разделы дисциплины, мероприятия текущего контроля Введение Наборы стандартов для создания ПО. Обзор существующих методологий разработки ПО. Источники возникновения проблем при разработке ПО Источники сложности ПО. Сбои и дефекты. Методики предупреждения дефектов, Отслеживание проблем. Планирование программного проекта Проектный план. Методы оценки ресурсов и распределения работ. Рисканализ. Отслеживание и контроль выполнения плана, инструментарий. Анализ требований программного продукта. Первичный сбор и анализ требований. Классификация и детализация требований. Контроль реализации требований. Методы отладки кода и их особенности Тестирование и отладка. Воспроизведение проблем. Научная отладка. Поиск ошибок дедуктивным методом. Методы проверки кода и проектных артефактов. Обзоры и инспекции кода. Проблемы процесса тестирования, критерии процесса тестирования. Инструментальные средства. Сопровождение программного продукта. Проблемы и перспективы сопровождения и продолжающейся разработки ПО. Стандарты программирования Оценка качества программного продукта Основные показатели качества ПО. Методы оценки качества ПО. Управление качеством. Взаимодействие процессов при разработке ПО Выбор процессов разработки для конкретного проекта. Базовый набор процессов для конкретной организации. Способы оценки эффективности процессов. Итого по видам учебной работы: 4 Л КСРА СРА Э 1 6 – 6 – 7 – 2 18 – 1 11 – 1 10 – 6 – 2 17 – 2 16 – 9 97 – 4.2. Содержание разделов и результаты изучения дисциплины Темы, разделы Результаты освоения дисциплины 1. Введение 1.1. Наборы стандартов для создания ПО. Обзор существующих методологий разработки ПО. Знакомство с несколькими наборов стандартов для создания программного обеспечения (IEEE/ISO/IEC, CMMI for Development, ver.1.3, ГОСТы). Обзор существующих методологий разработки программного обеспечения, как формализованных (Waterfall, CMMI, RUP), так и гибких (Agile methods). Обсуждение преимуществ и недостатков каждой из методологий, а также критериев, по которым надо выбирать методологию для конкретного проекта или группы проектов. Знакомство с основной используемой в курсе терминологией. Сборочная технология программного продукта: от прототипа к продукту с заданным качеством, проблемы повторного использования модулей (reuse), возвратной инженерии (reenginering) и портирования. Концепция обеспечения характеристик качества для промышленного продукта на всех этапах его разработки. Задание: сравнение нескольких методологий применительно к конкретному программному проекту. Обоснование выбора конкретной методологии по заданным критериям. Знания на уровне понятий, определений, формулировок методологий и стандартов разработки ПО. Умение построить модель процессов разработки ПО для конкретных предлагаемых примеров, учитывая цели разработки. 2. Источники возникновения проблем при разработке ПО 2.1. Источники сложности ПО. Сбои и дефекты. Методики предупреждения дефектов, Отслеживание проблем. Сложность как основная проблема программирования. Источники сложности. Сбои и дефекты. Обзор некоторых методик предупреждения появления дефектов. Отслеживание проблем, отчеты о проблемах, классификация проблем, управление проблемами в процессе разработки, связывание проблем, исправлений и тестов. Задание: анализ записей в базе ошибок конкретного проекта, разбор нескольких записей по заданным критериями (достаточность информации для воспроизведения дефекта, заполнение требуемых полей и т.п.). Добавить недостающую информацию, объяснить почему именно эти Знания на уровне понятий, определений и описаний. Умение связать отчеты о проблемах с функциональностью программного продукта. Базовые навыки управления проблемами. Умение учитывать проблемы сложности при решении задач разработки ПО. 5 данные необходимо добавить. Сравнение двухтрех известных баз данных для записи ошибок. Объяснить преимущества и недостатки каждой из баз применительно к конкретному проекту. 3. Планирование программного проекта 3.1. Проектный план. Методы оценки ресурсов и распределения работ. Риск-анализ. Отслеживание и контроль выполнения плана, инструментарий. Создание проектного плана. Методы оценки ресурсов и распределения работ. Рисканализ. Отслеживание и контроль плана, инструментарий пригодный для контроля плана и управления рисками. Принцип коллективной разработки. Возможности Twiki, как одного из инструментов Wiki технологии, для создания удобной среды коллективной разработки ПО. Знания на уровне понятий, определений, описаний и формулировок. Умения составлять план разработки приложения, проводить рисканализ известных факторов, влияющих на ход разработки. Умения работать с одним или несколькими инструментами для контроля задач разработки ПО. Навыки использования инструментов для коллективной распределенной разработки на примере Wiki технологии. 4. Анализ требований программного продукта 4.1. Первичный сбор и анализ требований. Классификация и детализация требований. Контроль реализации требований. Требования к программному продукту. Методы первичного сбора требований. Анализ требований. Правила формулировки непротиворечивых требований. Классификация требований по критериям верификации (тестируемости) требований. Детализация требований (спецификация требований) и согласование с заказчиком. Отслеживание и контроль требований. Требования в виде записей в базе ошибок. Инструментальные средства для сбора, изменений, отслеживания состояния требований. Задание: в процессе работы над проектом будут предложены новые требования. Требуется провести изменения в программном продукте в соответствии с процессов изменения требований, принятом в конкретном проекте. Знания на уровне понятий, определений, описаний и формулировок. Умение составлять требования на программный продукт, модифицировать требования, проверять их полноту, непротиворечивость и ясность. Умение работать с одним из выбранных инструментов для хранения и управления требованиями. 5. Методы отладки кода и их особенности 5.1. Тестирование и отладка. Воспроизведение проблем. Научная отладка. Поиск ошибок дедуктивным методом. Тестирование и отладка на различных уровнях представления программы. Воспроизведение и упрощение проблем. Научная отладка. Поиск ошибок дедуктивным методом. Логирование при отладке программ и управление возможностями систем сбора отладочной информации. Задание: создать набор Знания на уровне понятий, определений, описаний и формулировок. Умения использовать знания об отладке и тестировании при проверке качества программного проекта 6 модульных тестов на несколько модулей программного кода, автоматизировать часть из них, выполнить тесты, представить протокол их выполнения, объяснить полученные результаты. При выполнении тестов использовать разные настройки платформы логирования. Продемонстрировать разницу результатов при разных настройках, объяснить когда какие настройки должны применяться. 6. Методы проверки кода и проектных артефактов 6.1. Обзоры и инспекции кода. Проблемы процесса тестирования, критерии процесса тестирования. Инструментальные средства. Обзоры и инспекции кода, проектной документации и других проектных артефактов. Процесс тестирования как один из процессов проверки программного продукта перед его выпуском. Проблемы тестирования, выбор критериев тестирования для конкретных программных продуктов. Примеры инструментальных средств, используемых при тестировании. Уровни тестирования в процессе создания программного продукта: модульное тестирование, интеграционное и системное тестирование, регрессионное тестирование, приемочное тестирование. Задание: провести инспекции заранее выбранного объема программного кода по правилам формальной инспекции и по правилам одного из облегченных обзоров кода. Проанализировать полученные результаты. Результаты инспекции кода и другие проектные артефакты сохранить на Twiki. Написать несколько критериев тестирования и проверки качества конкретного программного продукта, обосновать выбор этих критериев. Знания на уровне понятий, определений, описаний и формулировок. Умение проводить обзоры и инспекции кода на примере отобранных для проверки компонент и модулей. Использование инструментальных средств для проведения статического и динамического анализов программного кода. Умение выбрать инструментальные средства проверки по заданным критериям. 7. Сопровождение программного продукта 7.1. Проблемы и перспективы Знания на уровне понятий, определений, сопровождения и продолжающейся описаний и формулировок. разработки ПО. Стандарты программирования. Сопровождение и/или продолжающаяся разработка ПО: проблемы и перспективы. Инструментальные средства, поддерживающие этап сопровождения. Стиль программирования, стандарты программирования. 8. Оценка качества программного продукта 8.1. Основные показатели качества ПО. Знания на уровне понятий, определений, 7 Методы оценки качества ПО. Управление качеством. Основные показатели качества ПО, методы и метрики оценки качества ПО. Методы управления качеством ПО, контроль и отслеживание, обзоры и аудиты. Приемка ПО. основных показателей качества ПО, методов и метрик оценки качества ПО. Навыки усовершенствования процессов разработки для управления качеством ПО. Умения проводить обзоры и аудиты ПО для принятия решения о его приемке. 9. Взаимодействие процессов при разработке ПО 9.1. Выбор процессов разработки для конкретного проекта. Базовый набор процессов для конкретной организации. Способы оценки эффективности процессов. Выбор процессов для разработки конкретного программного продукта, создание базового набора процессов для конкретной организации. Взаимосвязь между процессами, способы оценки эффективности применяемых процессов, улучшение процессов. Особенности выбора процессов для разработки ПО встроенных систем. Знания на уровне понятий, определений, описаний и формулировок. Умение выявить взаимосвязь между процессами и учитывать такие связи при улучшении процессов разработки ПО. 5. Образовательные технологии В преподавании курса используются преимущественно традиционные образовательные технологии: – СРА, – КСРА – Зачет. 1) СРА (самостоятельная работа аспиранта) должна составлять не менее 50% от общей трудоемкости дисциплины и является важным компонентом образовательного процесса, направленного на развитие способности к самообучению и постоянному повышению своего профессионального уровня. Цели самостоятельной работы: - систематизация и закрепление полученных теоретических знаний и практических умений аспирантов; - углубление и расширение теоретических знаний; - формирование умений использовать нормативную, правовую, справочную документацию и специальную литературу; - развитие познавательных способностей и активности аспирантов: творческой инициативы, самостоятельности, ответственности и организованности; - приобретение навыков решения практических задач в сфере профессиональной деятельности; - формирование самостоятельности мышления, способностей к саморазвитию, самосовершенствованию и самореализации; - развитие исследовательских умений. 2) КСРА (контроль самостоятельной работы аспиранта) осуществляется преподавателем в ходе выполнения аспирантом всех видов учебной нагрузки, может быть представлен тестовым контролем, выступлением на семинарском занятии, конференции, участием в «Круглом столе» и т.п. Результаты текущего контроля влияют на рейтинг аспиранта. 3) Зачет (включает в себя ответы на теоретические вопросы). 8 Формирование итоговой оценки по дисциплине с использованием балльно-рейтинговой оценки работы аспиранта в семестре. 6. Лабораторный практикум не предусмотрен 7. Практические занятия не предусмотрены 8. Организация и учебно-методическое обеспечение самостоятельной работы аспирантов СРА направлена на освоение учебного материала, развитие практических умений. СРА включает следующие виды самостоятельной работы аспирантов: – работа с рекомендованной учебной литературой; – выполнение домашних заданий; – подготовка зачёту. В составе СРА отдельно выделяют творческую проблемно-ориентированную самостоятельную работу аспирантов (ТСРА), которая направлена на развитие комплекса интеллектуальных универсальных (общекультурных) и профессиональных умений, повышение творческого потенциала аспирантов. ТСРС включает, в частности: – поиск, обработка и презентация информации по печатным и электронным источникам информации по заданной проблеме дисциплины; – исследовательская работа, участие в научных конференциях (в том числе студенческих), семинарах; – анализ научных публикаций по заданной теме; – анализ статистических и фактических данных по заданной теме, выполнение расчётов, составление схем и моделей на основе собранных данных. Примерное распределение времени самостоятельной работы аспирантов Вид самостоятельной работы Примерная трудоёмкость, ач Текущая СРА с учебной литературой опережающая самостоятельная работа (изучение нового материала до его изложения на занятиях) самостоятельное изучение разделов дисциплины выполнение домашних заданий, домашних контрольных работ подготовка к лабораторным работам, к практическим и семинарским занятиям подготовка к контрольным работам, коллоквиумам, зачётам подготовка к экзаменам другие виды СРА (подготовка к зачету) Итого текущей СРА: 56 8 64 Творческая проблемно-ориентированная СРА выполнение расчётно-графических работ выполнение курсового проекта или курсовой работы поиск, изучение и презентация информации по заданной проблеме, анализ научных публикаций по заданной теме работа над междисциплинарным проектом исследовательская работа, участие в конференциях, семинарах, олимпиадах анализ данных по заданной теме, выполнение расчётов, составление схем и моделей на основе собранных данных 9 12 10 11 Примерная трудоёмкость, ач Вид самостоятельной работы другие виды ТСРС (указать конкретно) Итого творческой СРА: 33 Итого СРА: 97 Тематика самостоятельной работы соответствует темам по П.4.2 Методы контроля СРА (самоконтроль, контроль преподавателя, выступление на семинаре, написание статьи, индексируемой в РИНЦ по тематике дисциплины.) Для проведения СРА используется ресурс в системе MOODLE. http://dl.spbstu.ru/ 9. Учебно-методическое обеспечение дисциплины 9.1. Адрес сайта курса Интернет-адрес сайта http://dl.spbstu.ru/ http://dl.spbstu.ru/ (вход для зарегистрированных пользователей) -> Courses –> Профессиональный цикл –> Технические институты –> ИНТУ –> кафедра ИУС –> курс «Процессы управления разработкой качественного программного обеспечения» (вход по кодовому слову, получаемому у преподавателя). . 9.2. Рекомендуемая литература Основная литература 1. Мэри и Том Поппендик. Бережливое производство программного обеспечения: от идеи до прибыли. – М.: "И.Д.Вильямс", 2010. 2. А.Целлер. Почему не работают программы. Руководство по системной отладке. - М.: ЭКСМО, 2011. 3. Брукс Ф. Мифический человеко-месяц или как создаются программные системы.2-е издание, юбилейное. – С.Пб.: “Символ-Плюс”, 2005. 4. Boehm B., Turner R. Balancing Agility and Discipline: A Guide for the Perplexed. – AddisonWesley, 2004. Дополнительная литература: 1. A Guide to the Project Management Body of Knowledge. Third Edition. Project Management Institute, Inc., 2004. http://www.pmi.org 2. CMMI for Debelopment, Version 1.3 Буч Г., Рамбо Дж., Джекобсон А. UML Руководство пользователя. – М.:2000 – 427с. Электронные и Internet-ресурсы: 1. Интернет-адрес сайта http://dl.spbstu.ru/ 2. http://www.mfagan.com./process_frame.html 3. http://www.compress.ru./about.aspx 9.3. Технические средства обеспечения дисциплины Компьютер с доступом в интернет с операционными системами Windows 7 или 8 c достаточным быстродействием для работы с аудио и видео ресурсами из университетской системы MOODLE. http://dl.spbstu.ru/ 10 10. Материально-техническое обеспечение дисциплины Компьютерный класс на кафедре со стандартными ресурсами для работы в интернете. Свободно распространяемая версия Twiki инсталлированная на кафедральном сервере. Свободно распространяемые программные инструменты для статической и динамической проверки кода. 11. Критерии оценивания и оценочные средства 11. Критерии оценивания и оценочные средства 11.1. Критерии оценивания Текущая аттестация аспирантов производится в дискретные временные интервалы лектором и преподавателем, осуществляющим контроль самостоятельной работы аспиранта в следующих формах: • промежуточное тестирование по отдельным разделам дисциплины; • отдельно оцениваются личностные качества аспиранта (аккуратность, исполнительность, инициативность) - своевременная сдача тестов, отчетов и письменных домашних заданий и т.д. Промежуточная аттестация по результатам изучения дисциплины проходит в форме зачета (включает в себя ответы на теоретические вопросы). Порядок сдачи зачета: 1. Зачет имеет цель оценить работу аспиранта за курс (семестр), полученные теоретические знания, их прочность, развитие теоретического мышления, приобретение навыков самостоятельной работы, умение синтезировать полученные знания и применять их к решению практических задач, сформированность компетенций, предусмотренных учебным планом на основе образовательного стандарта. 2. К зачету допускаются аспиранты при условии выполнения всех предусмотренных видов самостоятельной работы. 3. Зачет проходит в устной форме или в форме тестирования. Примерные вопросы и задания устанавливается в рабочей программе дисциплины и доводится до сведения аспирантов в начале семестра. 4. Знания, умения, навыки аспирантов и степень сформированности их компетенций определяются на зачете оценками «отлично», «хорошо», «удовлетворительно», «неудовлетворительно» в соответствии с требованиями, изложенными в программе дисциплины. Цифровое выражение Словесное выражение 5 Отлично 4 Хорошо 3 Удовлетвори тельно 2 Неудовлетво рительно Описание Выполнен полный объем работы, ответ аспиранта полный и правильный. Аспирант способен обобщить материал, сделать собственные выводы, выразить свое мнение, привести иллюстрирующие примеры Выполнено 75% работы, ответ аспиранта правильный, но неполный. Не приведены иллюстрирующие примеры, обобщающее мнение аспиранта недостаточно четко выражено Выполнено 50% работы, ответ правилен в основных моментах, нет иллюстрирующих примеров, нет собственного мнения аспиранта, есть ошибки в деталях и/или они просто отсутствуют Выполнено менее 50% работы, в ответе существенные ошибки в основных аспектах темы. 11.2. Оценочные средства – перечень контрольных (экзаменационных) вопросов, позволяющих оценить качество усвоения учебного материала на уровне знакомства; 11 – комплекс заданий на контроль практических умений репродуктивного уровня; – контрольные тесты; – опубликованная в журнале индексируемом в РИНЦ статья Материалы содержатся в MOODLE. http://dl.spbstu.ru/ 12. Методические рекомендации по организации изучения дисциплины Методические рекомендации находятся в среде MOODLE. http://dl.spbstu.ru/, которая активно используется в процессе СРА и КСРА с использованием набора заданий, приведенных в системе. 13. Особенности организации учебного процесса при заочной форме обучения: Поскольку занятия проходят в форме СРА с КСРА, то обучение по заочной форме обучения не отличается от обучения по очной форме, поскольку опирается на один и тот же ресурс MOODLE. http://dl.spbstu.ru/ и проводятся на основе одной и той же методики. 12