Опубликован: 12.03.2009 | Уровень: для всех | Доступ: свободно | ВУЗ: Санкт-Петербургский государственный университет
Цель данного курса - представить программную инженерию в виде целостного изложения, концентрируясь на концепции процесса, различных методологиях
разработки ПО (CMMI, MSF, Scrum), отдельных видах деятельности процесса - разработке архитектуры, конфигурационном управлении, работе с требованиями,
тестировании. В стороне умышленно оставлены вопросы, собственно, программирования, поскольку в рамках общего курса их невозможно эффективно
рассмотреть. В качестве программных средств, поддерживающих целостный
процесс разработки ПО, рассматривается технология компании Microsoft - Visual Studio Team System (VSTS)с акцентом на Team Foundation Server (TFS).
Показывается, как изложенный выше теоретический материал можно реализовать на практике, с поддержкой программных средств разработки. Представлено также
описание практикума по MS VSTS, организованного на принципах Scrum.
Несколько слов о практикумах и семинарах, прилагаемых к данному курсу. Их задача – «прокрутить» лекционный материал через «сито» обсуждений, докладов и упражнений, основанных на картах памяти для лучшего усвоения. Серия таких экспериментов уже была проведена в прошлом году, на их основе была создана методика (опубликована в [1]) по активизации collaborative learning процессов и повышении активности студентов в изучении лекционного материала. Подобного рода поддержка лекционного курса крайне необходима, как показывает наш опыт, поскольку курс состоит в обсуждении проблем и способов их решений, с которыми студенты еще не сталкивались на практике. Мы хотели бы также дополнительно поддержать данный курс практикумами по средствам поддержки жизненного цикла разработки ПО на основе TFS и процессам разработки.
Цель: Суммация и систематизация сведений по программной инженерии у студентов последнего года обучения.
План занятий
Занятие | Заголовок << | Дата изучения |
---|---|---|
- | ||
Лекция 115 минут | О предмете изучения
Понятие программной инженерии. Основные определения: информатика, Системотехника, Бизнес-реинжиниринг. Программное обеспечение: определение, свойства.
Оглавление | - |
Лекция 231 минута | Процесс разработки программного обеспечения
Понятие процесса разработки ПО. Универсальный процесс. Текущий процесс. Конкретный процесс. Стандартный процесс. Совершенствование процесса. Pull/Push стратегии. Классические модели процесса: водопадная модель, спиральная модель. Фазы и виды деятельности.
Оглавление | - |
Лекция 323 минуты | Рабочий продукт, дисциплина обязательств, проект
Рабочий продукт. Дисциплина обязательств. Проект. Управление проектами.
Оглавление | - |
Тест 136 минут | - | |
Лекция 434 минуты | Архитектура ПО
Понятие архитектуры ПО. Точка зрения и характеристики точек зрения. Множественность точек зрения при разработке ПО.
Оглавление | - |
Лекция 521 минута | Управление требованиями
Виды требований: функциональные требования, нефункциональные требования. Свойства требований: ясность и недвусмысленность, полнота и непротиворечивость, необходимый уровень детализации, прослеживаемость, тестируемость и проверяемость, модифицируемость. Формализация требований. Цикл работы с требованиями.
Оглавление | - |
Лекция 623 минуты | Конфигурационное управление
Понятие конфигурационного управления. Управление версиями. Понятие "ветки" проекта. Управление сборками. Средства версионного контроля. Единицы конфигурационного управления. Понятие baseline.
Оглавление | - |
Тест 233 минуты | - | |
Лекция 737 минут | Тестирование
Стандартизация качества. Методы обеспечения качества ПО. Понятие тестирования. Тестирование черного ящика. Тестирование белого ящика. Инструменты тестирования. Критерии тестирования. Виды тестирования. Работа с ошибками. Средства контроля ошибок (bug tracking systems).
Оглавление | - |
Лекция 836 минут | Диаграммные техники в работе со знаниями
Случаи использования. Работа с требованиями. Случаи использования в управлении разработкой. Итеративный цикл автор/рецензент. Карты памяти.
Оглавление | - |
Тест 336 минут | - | |
Лекция 927 минут | MSF
IT решение. Основные принципы MSF. Модель команды: основные принципы, ролевые кластеры. Масштабирование команды MSF. Модель процесса. Управление компромиссами.
Оглавление | - |
Лекция 1010 минут | CMMI
Понятие CMMI. Уровни зрелости процессов по CMMI. Области усовершенствования.
Оглавление | - |
Лекция 1114 минут | "Гибкие" (agile) методы разработки
Общее описание "гибких" методов разработки ПО. Extreme Programming: общее описание, основные принципы организации процесса. Scrum: общее описание, роли, практики.
Оглавление | - |
Тест 436 минут | - | |
Лекция 1234 минуты | Обзор технологии Microsoft Visual Studio Team System (VSTS)
Состав продукта: обзор, клиентская часть VSTS, серверная часть VSTS. Правила инсталляции. Пакет Team Explorer.
Оглавление | - |
Лекция 1337 минут | VSTS: управление элементами работ (Work Items)
Определение, свойства, жизненный цикл. Реквизиты. Средства использования (на примере элемента работы task). Доступ к элементам работы. Элементы работы при планировании. Элементы работы в дальнейшей разработке. Элементы работы в отчетах.
Оглавление | - |
Лекция 1443 минуты | VSTS: конфигурационное управление
Система контроля версий. Отслеживание изменений отдельных файлов. Правила внесения изменений. Управление ветками. Сохранение без внесения. Автоматические сборки.
Оглавление | - |
Лекция 1538 минут | VSTS: тестирование
Система отслеживания ошибок. Создание описания ошибки. Связь изменений исходных текстов ПО и ошибок. Система оповещений. Модульные тесты. Пакеты тестов. Автоматическое тестирование Web-приложений.
Оглавление | - |
Лекция 1626 минут | VSTS: поддержка различных моделей процесса
Поддержка шаблонов процесса. Инструменты настройки. Обзор существующих шаблонов. MSF for Agile Software Development. Scrum.
Оглавление | - |
Тест 542 минуты | - | |
Лекция 1755 минут | Практикум
Требования к техническому оснащению. Организация процесса. Модельная задача. Требования к студентам. Масштабируемость практикума. Обзор тем и задач. Тема 1. Знакомство и создание проекта. Тема 2. Работа с системой отслеживания ошибок. Тема 3. Работа с системой контроля версий. Тема 4. Разработка модульных тестов. Тема 5. Создание и конфигурация автоматической сборки. Тема 6. Настройка шаблона процесса.
Оглавление | - |
Дополнительный материал35 минут | - | |
5 часов | - |