2 1 Цели и задачи дисциплины 1.1. Цель преподавания дисциплины Целью преподавания дисциплины является ознакомление магистрантов по дисциплине методы и инструменты программной инженерии, программные инструменты предназначены для обеспечения поддержки процессов жизненного цикла программного обеспечения. Инструменты позволяют автоматизировать определенные повторяющиеся действия, уменьшая загрузку инженеров рутинными операциями и помогая им сконцентрироваться на творческих, нестандартных аспектах реализации выполняемых процессов. Задачи изучения дисциплины В результате изучения дисциплины магистранты должны знать основные принципы методы и инструменты программной инженерии, обучающийся должен знать основные и вспомогательные процессы программной инженерии; преимущества инженерного подхода к созданию программного обеспечения; основные сложности, возникающие при внедрении такого подхода; историю создания и развития программной инженерии; связь программной инженерии с жизненным циклом программных средств; основные источники текущей информации по управлению ИТ – сервисами. 1.2. Пререквизиты Для успешного освоения курса «Методы и инструменты программной инженерии» необходимо изучение следующих дисциплин: «Компьютерная математика», «Базовое программирование», «Программно-аппаратная платформа». 1.3. Постреквизиты Знания, полученные при изучении дисциплины «Методы и инструменты программной инженерии», необходимы специалистам должны изучить компьютерная математика: дискретная математика; математическая логика и теория алгоритмов; вычислительная математика; теория автоматов и формальных языков. Базовое программирование: программирование; объектноориентированное программирование; построение и анализ алгоритмов; алгоритмы и структуры данных; базы данных; компьютерная графика; криптография и защита информации; web-технологии. Программно-аппаратная платформа: архитектура компьютера; операционные системы; архитектура распределенных вычислительных систем; сети и телекоммуникации. 3 2. Контроль оценки знаний Распределение рейтинговых % по видам контроля № Вид итогового Виды контроля вариантов контроля 1. Экзамен Итоговый контроль Рубежный контроль Текущий контроль % 100 100 100 Для обеспечения систематического и регулярного контроля за учебной работой Магистрантов течение семестра в КазНТУ применяется рейтинговый контроль знаний. В текущий контроль оценки знаний студентов входит выполнение 6 лабораторных работ. Сроки сдачи текущего контроля определяются календарным графиком учебного процесса по дисциплине (таблица 1). Таблица 1 Календарный график сдачи всех видов контроля по дисциплине «Методы и инструменты программной инженерии» Недели 1 2 3 4 5 6 7 8 9 1 0 11 12 1 3 14 15 Недельное количество контроля 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Л Л Л Л Р СР ЛР РК СР ЛР Вид контроля Р Р Р Р К 1 3 1 2 6 1 2 4 5 2 Виды контроля: СР - самостоятельная работа, ЛР – лабораторная работа, РКрубежный контроль Соответствие процентной оценки буквенному традиционной оценке определяется по шкале (таблица 2). 4 эквиваленту и Таблица 2 Оценка знаний магистрантов Оценка Отлично Хорошо Удовлетворительно Неудовлетворительно Буквенный эквивалент А АВ+ В ВС+ С СD+ D F В процентах % В баллах 95-100 90-94 85-89 80-84 75-79 70-74 65-69 60-64 55-59 50-54 0-49 4 3,67 3,33 3,0 2,67 2,33 2,0 1,67 1,33 1,0 0 3. Содержание дисциплины Изучение дисциплины «Методы и инструменты программной инженерии» предполагает обязательные лекционные (2 кредит) занятия, лабораторные (1 кредит) занятия, а также самостоятельную работу Магистрантов (СРМ и СРМП). Такие комплексные занятия обеспечивают усвоение курса, способствуют приобретению студентами фундаментальных систематических знаний. Тематический план дисциплины с указанием наименований тем и количества академических часов по всем видам занятий (по темам) приведен в таблице 6. Таблица 6 Распределение часов по видам занятий Наименование Темы 1 1 О предмете изучения. Программная инженерия. 2 Процесс разработки программного обеспечения 3 Рабочий продукт, дисциплина обязательств, проект 5 Количество академических часов Лекц Практич Лабо ии еские/ рато СРМ СР семинар рные П М ские 2 3 4 5 6 2 - 1 2 6 2 - 1 2 6 2 - 1 2 6 4 Архитектура ПО 5 Управление требованиями 6 Конфигурационное управление 7 Тестирование 8 Диаграммные техники в работе со знаниями 9 MSF 10 CMMI 11 "Гибкие" (agile) методы разработки 12 Обзор технологии Microsoft Visual Studio Team System (VSTS) 13 VSTS: управление элементами работ (WorkItems) 14 VSTS: конфигурационное управление 15 VSTS: тестирование Всего часов 2 2 2 2 - 1 1 1 1 2 2 2 2 6 6 6 6 2 - 1 2 6 2 2 2 - 1 1 1 2 2 2 6 6 6 2 - 1 2 6 2 - 1 2 6 2 - 1 2 6 2 30 - 1 15 2 30 6 90 3.1. Лекционные занятия и их содержание № 1 1 2 3 4 5 Наименование Объём, План и содержание лекций темы час 2 3 4 О предмете Понятие программной инженерии. 2 изучения. Основные определения: информатика, Программная Системотехника, Бизнес-реинжиниринг. инженерия. Программное обеспечение: определение, свойства. Процесс Понятие процесса разработки ПО. 2 разработки Универсальный процесс. Текущий процесс. программного Конкретный процесс. Стандартный процесс. обеспечения Совершенствование процесса. Pull/Push стратегии. Классические модели процесса: водопадная модель, спиральная модель. Фазы и виды деятельности. Рабочий продукт, Рабочий продукт. Дисциплина 2 дисциплина обязательств. Проект. Управление обязательств, проектами. проект Архитектура ПО Понятие архитектуры ПО. Точка 2 зрения и характеристики точек зрения. Множественность точек зрения при разработке ПО. Управление Виды требований: функциональные 2 6 требованиями 6 Конфигурационно е управление 7 Тестирование 8 Диаграммные техники в работе со знаниями 9 MSF 10 CMMI 11 "Гибкие" (agile) методы разработки требования, нефункциональные требования. Свойства требований: ясность и недвусмысленность, полнота и непротиворечивость, необходимый уровень детализации, прослеживаемость, тестируемость и проверяемость, модифицируемость. Формализация требований. Цикл работы с требованиями. Понятие конфигурационного управления. Управление версиями. Понятие "ветки" проекта. Управление сборками. Средства версионного контроля. Единицы конфигурационного управления. Понятие baseline. Стандартизация качества. Методы обеспечения качества ПО. Понятие тестирования. Тестирование черного ящика. Тестирование белого ящика. Инструменты тестирования. Критерии тестирования. Виды тестирования. Работа с ошибками. Средства контроля ошибок (bugtrackingsystems). Случаи использования. Работа с требованиями. Случаи использования в управлении разработкой. Итеративный цикл автор/рецензент. Карты памяти. IT решение. Основные принципы MSF. Модель команды: основные принципы, ролевые кластеры. Масштабирование команды MSF. Модель процесса. Управление компромиссами. Понятие CMMI. Уровни зрелости процессов по CMMI. Области усовершенствования. Общее описание "гибких" методов разработки ПО. ExtremeProgramming: общее описание, основные принципы организации процесса. Scrum: общее описание, роли, практики. Состав продукта: обзор, клиентская часть VSTS, серверная часть VSTS. Правила инсталляции. Пакет TeamExplorer. 12 Обзор технологии Microsoft Visual Studio Team System (VSTS) 13 VSTS: управление Аннотация: Определение, свойства, элементами работ жизненный цикл. Реквизиты. Средства (WorkItems) использования (на примере элемента работы 7 2 2 2 2 2 2 2 2 14 VSTS: конфигурационно е управление 15 VSTS: тестирование task). Доступ к элементам работы. Элементы работы при планировании. Элементы работы в дальнейшей разработке. Элементы работы в отчетах. Система контроля версий. Отслеживание изменений отдельных файлов. Правила внесения изменений. Управление ветками. Сохранение без внесения. Автоматические сборки. Система отслеживания ошибок. Создание описания ошибки. Связь изменений исходных текстов ПО и ошибок. Система оповещений. Модульные тесты. Пакеты тестов. Автоматическое тестирование Webприложений. Всего часов 2 2 30 3.2 Лабораторные занятия и их содержание Объём , час 4 занятия 2 № Наименование темы Содержание 1 1 2 3 Целями данного является следующее. Разделить студентов на scrumкоманды, определить и обсудить Scrum-роли. Провести начальное знакомство с модельной задачей, которую предстоит реализовать. Прояснить открытые вопросы по модельной задаче с Prodcut Owner. Создать командный проект на TFS и добавить в него пользователей. Знакомство и создание проекта 1. 2. 3. 4. 2 3 Работа с системой Основной целью данного отслеживания ошибок занятия является знакомство участников с системой отслеживания элементов работы. Работа с системой Основной целью данного контроля версий занятия является освоение системы контроля версий Team Foundation Server и её интеграции с системой отслеживания задач. 8 2 2 4 5 6 Разработка тестов модульных На данном занятии команды должны разработать набор модульных тестов, покрывающих функциональность, разработанную на занятии предыдущем. Создание и конфигурация На данном автоматической сборки этапе команда должна создать в своем проекте процедуру автоматической сборки. При этом должно быть создано несколько процедур: 1. Простая процедура, включающая только сборку. 2. Полная процедура, включающая тесты и анализ кода. 4 Настройка процесса 3 шаблона На завершающем этапе, соответствующем окончанию спринта, команды должны провести ретроспективу своей деятельности и сформировать список возможных изменений в процессе и работе с TFS. Все замечания должны быть занесены в TFS как соответствующие элементы работы. Всего часов 2 15 3.3. Самостоятельная работа Магистрантов Одной из основных целей кредитной системы обучения является обеспечение более высокого качественного уровня самостоятельной работы Магистрантов. Самостоятельная работа Магистрантов, проводимая под руководством преподавателя (СРМП) составляет треть всей самостоятельной работы. Общее количество часов самостоятельной работы Магистрантов по курсу «Методы и инструменты программной инженерии» составляет 90 часов за семестр, из них 30 часов отводится под СРМП (ауд.). Содержание самостоятельной работы магистрантов под руководством преподавателя (СРМП) и самостоятельной работы магистрантов без преподавателя (СРМ) отражено в таблице. 9 Планы СРМП и СРМ № СРМП недели 1 2 1 Международный стандарт определяющий перечень и содержание процессов жизненного цикла ПО. 2 Разделы области знаний "Проектирование ПО" 3 Стандарты в области управления проектом. 4 5 Архитектура и структура программного обеспечения Область знаний SWEBOK 9 Характеристика областей знаний SWEBOK Тестирование программных продуктов. Итеративный цикл автор/рецензент Основные принципы MSF 10 11 CMMI Язык разметки 12 13 Основные понятия языка shell Интегратор объектных запросов. 14 Перечень диаграмм языка моделирования UML. Приведите структуру описания спецификации интерфейса в языке IDL. 6 7 8 15 10 СРМ 3 Базовые понятия области знаний "Тестирование ПО". Процесс управления качеством жизненного цикла Как строить профиль жизненного цикла программного обеспечения Концепции сценариев для сбора требований Инструменты работы с требованиями (Software Requirements Tools) Редакторы (Software Requirements Tools) Разработка технологического процесса тестирования Случаи использования в управлении разработкой Модель процесса. Управление компромиссами Модель – CMMI-DEV Преимущества и недостатки предметно-ориентированного визуального языка ОС UNIX и POSIX Методы интеграции объектов языка JAVA. Особенности описания объектов в системе CORBA. Управления проектом и рисками в системе MSF. 4. Список литературы 1 Липаев В.В. Системное проектирование сложных программных средств для информационных систем. Изд. второе переработанное и дополненное. – М.: СИНТЕГ. – 2002. 2 Соммервилл И. Инженерия программного обеспечения. Пер. с англ. – М.: Вильямс. – 2002. 3 Леффингуэлл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. Пер. с англ. – М.: Вильямс. – 2002. 4 Вигерс К.И. Разработка требований к программному обеспечению. Пер. с англ. – М.: Русская редакция. – 2004. 5 Гецци К., Джазайери М., Мандриоли Д. Основы инженерии программного обеспечения. Пер. с англ. – СПб. БХВ-Петербург. 2005. 11 Содержание 1. Цели и задачи дисциплины……………………………………………………...3 2. Система оценки знаний………………………………………………………….3 3. Содержание дисциплины………………………………………………………..6 4. Список литературы……………………………………………………………...13 12