Information

Created: 11.03.2009 | Level: for all | Access: free | University: Санкт-Петербургский государственный университет
Цель данного курса - представить программную инженерию в виде целостного изложения, концентрируясь на концепции процесса, различных методологиях разработки ПО (CMMI, MSF, Scrum), отдельных видах деятельности процесса - разработке архитектуры, конфигурационном управлении, работе с требованиями, тестировании. В стороне умышленно оставлены вопросы, собственно, программирования, поскольку в рамках общего курса их невозможно эффективно рассмотреть. В качестве программных средств, поддерживающих целостный процесс разработки ПО, рассматривается технология компании Microsoft - Visual Studio Team System (VSTS)с акцентом на Team Foundation Server (TFS). Показывается, как изложенный выше теоретический материал можно реализовать на практике, с поддержкой программных средств разработки. Представлено также описание практикума по MS VSTS, организованного на принципах Scrum.
Несколько слов о практикумах и семинарах, прилагаемых к данному курсу. Их задача – «прокрутить» лекционный материал через «сито» обсуждений, докладов и упражнений, основанных на картах памяти для лучшего усвоения. Серия таких экспериментов уже была проведена в прошлом году, на их основе была создана методика (опубликована в [1]) по активизации collaborative learning процессов и повышении активности студентов в изучении лекционного материала. Подобного рода поддержка лекционного курса крайне необходима, как показывает наш опыт, поскольку курс состоит в обсуждении проблем и способов их решений, с которыми студенты еще не сталкивались на практике. Мы хотели бы также дополнительно поддержать данный курс практикумами по средствам поддержки жизненного цикла разработки ПО на основе TFS и процессам разработки.
Goal: Суммация и систематизация сведений по программной инженерии у студентов последнего года обучения.

План занятий

LessonTitle <<Date
-
Lecture 1
15 minutes
О предмете изучения
Понятие программной инженерии. Основные определения: информатика, Системотехника, Бизнес-реинжиниринг. Программное обеспечение: определение, свойства.
Contents
    -
    Lecture 2
    31 minute
    Процесс разработки программного обеспечения
    Понятие процесса разработки ПО. Универсальный процесс. Текущий процесс. Конкретный процесс. Стандартный процесс. Совершенствование процесса. Pull/Push стратегии. Классические модели процесса: водопадная модель, спиральная модель. Фазы и виды деятельности.
    Contents
      -
      Lecture 3
      23 minutes
      Рабочий продукт, дисциплина обязательств, проект
      Рабочий продукт. Дисциплина обязательств. Проект. Управление проектами.
      Contents
        -
        Тест 1
        36 minutes
        -
        Lecture 4
        34 minutes
        Архитектура ПО
        Понятие архитектуры ПО. Точка зрения и характеристики точек зрения. Множественность точек зрения при разработке ПО.
        Contents
          -
          Lecture 5
          21 minute
          Управление требованиями
          Виды требований: функциональные требования, нефункциональные требования. Свойства требований: ясность и недвусмысленность, полнота и непротиворечивость, необходимый уровень детализации, прослеживаемость, тестируемость и проверяемость, модифицируемость. Формализация требований. Цикл работы с требованиями.
          Contents
            -
            Lecture 6
            23 minutes
            Конфигурационное управление
            Понятие конфигурационного управления. Управление версиями. Понятие "ветки" проекта. Управление сборками. Средства версионного контроля. Единицы конфигурационного управления. Понятие baseline.
            Contents
              -
              Тест 2
              33 minutes
              -
              Lecture 7
              37 minutes
              Тестирование
              Стандартизация качества. Методы обеспечения качества ПО. Понятие тестирования. Тестирование черного ящика. Тестирование белого ящика. Инструменты тестирования. Критерии тестирования. Виды тестирования. Работа с ошибками. Средства контроля ошибок (bug tracking systems).
              Contents
                -
                Lecture 8
                36 minutes
                Диаграммные техники в работе со знаниями
                Случаи использования. Работа с требованиями. Случаи использования в управлении разработкой. Итеративный цикл автор/рецензент. Карты памяти.
                Contents
                  -
                  Тест 3
                  36 minutes
                  -
                  Lecture 9
                  27 minutes
                  MSF
                  IT решение. Основные принципы MSF. Модель команды: основные принципы, ролевые кластеры. Масштабирование команды MSF. Модель процесса. Управление компромиссами.
                  Contents
                    -
                    Lecture 10
                    10 minutes
                    CMMI
                    Понятие CMMI. Уровни зрелости процессов по CMMI. Области усовершенствования.
                    Contents
                      -
                      Lecture 11
                      14 minutes
                      "Гибкие" (agile) методы разработки
                      Общее описание "гибких" методов разработки ПО. Extreme Programming: общее описание, основные принципы организации процесса. Scrum: общее описание, роли, практики.
                      Contents
                        -
                        Тест 4
                        36 minutes
                        -
                        Lecture 12
                        34 minutes
                        Обзор технологии Microsoft Visual Studio Team System (VSTS)
                        Состав продукта: обзор, клиентская часть VSTS, серверная часть VSTS. Правила инсталляции. Пакет Team Explorer.
                        Contents
                          -
                          Lecture 13
                          37 minutes
                          VSTS: управление элементами работ (Work Items)
                          Определение, свойства, жизненный цикл. Реквизиты. Средства использования (на примере элемента работы task). Доступ к элементам работы. Элементы работы при планировании. Элементы работы в дальнейшей разработке. Элементы работы в отчетах.
                          Contents
                            -
                            Lecture 14
                            43 minutes
                            VSTS: конфигурационное управление
                            Система контроля версий. Отслеживание изменений отдельных файлов. Правила внесения изменений. Управление ветками. Сохранение без внесения. Автоматические сборки.
                            Contents
                              -
                              Lecture 15
                              38 minutes
                              VSTS: тестирование
                              Система отслеживания ошибок. Создание описания ошибки. Связь изменений исходных текстов ПО и ошибок. Система оповещений. Модульные тесты. Пакеты тестов. Автоматическое тестирование Web-приложений.
                              Contents
                                -
                                Lecture 16
                                26 minutes
                                VSTS: поддержка различных моделей процесса
                                Поддержка шаблонов процесса. Инструменты настройки. Обзор существующих шаблонов. MSF for Agile Software Development. Scrum.
                                Contents
                                  -
                                  Тест 5
                                  42 minutes
                                  -
                                  Lecture 17
                                  55 minutes
                                  Практикум
                                  Требования к техническому оснащению. Организация процесса. Модельная задача. Требования к студентам. Масштабируемость практикума. Обзор тем и задач. Тема 1. Знакомство и создание проекта. Тема 2. Работа с системой отслеживания ошибок. Тема 3. Работа с системой контроля версий. Тема 4. Разработка модульных тестов. Тема 5. Создание и конфигурация автоматической сборки. Тема 6. Настройка шаблона процесса.
                                  Contents
                                    -
                                    Дополнительный материал 
                                    35 minutes
                                    -
                                    5 hours
                                    -