Тематический план

  • Общее

    Объём дисциплины по видам учебных занятий (в часах)


    Виды учебной работы

    Объем в часах по семестрам

    Всего

    1

    семестр

    2

    семестр

    1. Контактная работа обучающихся с преподавателем по видам учебных занятий (всего)


    Аудиторная работа (всего)

    51

    51


    • Лекции (Л)

    17

    17


    • лабораторные работы (ЛР)

    34

    34


    2. Самостоятельная работа обучающихся (СР) (всего)

    93

    21

    72

    • Проработка учебного материала лекций

    4

    4


    • Подготовка к лабораторным работам

    10

    10


    • Подготовка к рубежному контролю, контрольной работе

    3

    3


    • Выполнение домашнего задания

    4

    4


    • Выполнение курсового проекта / курсовой работы

    72


    72

    Вид промежуточной аттестации обучающегося


    экз

    диф.зач.


    Содержание дисциплины, структурированное по разделам (темам)

    Модуль 1. Программный проект и управление его созданием (37 часов).

    Лекции по модулю 1 (8 часов).

    1. Методологии и стратегии разработки программного обеспечения и модели жизненного цикла (2 часа).

    Методологии и стратегии разработки программного обеспечения и модели жизненного цикла: каскадная модель, спиральная модель, инкрементная модель, макетирование, модель быстрой разработки RAD, экстремальное программирование (XP-процесс), компонентно-ориентированная модель и модель, управляемая архитектурой (MDA), унифицированный процесс (RUP). Тяжеловесные (прогнозирующие) и адаптивные (облегченные) процессы разработки. Перечень, последовательность и содержимое этапов разработки по методологиям.

    1. Руководство программным проектом (2 часа).

    Планирование проекта. Анализ и управление рисками. Структурная декомпозиция работ. Трассировка и контроль. Вехи. Типы связей задач. Календари ресурсов. Планирование, определяемое трудозатратами. Распределение ресурсов. Оценка бюджета проекта. Отслеживание выполнения проекта. Отслеживание графика выполнения и бюджета. Меры и метрики. Оценка затрат, длительности и стоимости разработки. Метрический базис. Оценка размера проекта на основе LOC, функциональных и объектных указателей. Размерно-ориентированные и функционально-ориентированные метрики. Вычисление затрат, длительности и стоимости разработки на основе моделей СОСОМО -81, СОСОМО –II. Модели композиции приложения, раннего этапа проектирования и этапа пост-архитектуры. Анализ чувствительности программного проекта с применением СОСОМО –II.

    1. Инструментальные средства для разработки программного обеспечения (2 часа).

    Инструментальные средства для разработки программного обеспечения: управление проектом, моделирование систем, управление версиями, интегрированные среды разработки. Их возможности и область применения. Проектные документы и спецификации проекта: функциональная, системная, проектная, архитектуры и пользовательского интерфейса. Автоматическая генерация документов.

    1. Унифицированный процесс RUP (2 часа).

    Унифицированный процесс RUP. Этапы и итерации. Вехи. Управление рисками. Рабочие процессы, их деятельности и модели. Определение требований. Кандидаты в требования. Контекст системы. Функциональные и нефункциональные требования. Модели прецедентов (требований) и предметной области. Нахождение актеров и прецедентов. Определение приоритетов и детализация прецедентов. Создание прототипа пользовательского интерфейса. Структурирование модели прецедентов. Модель анализа (пакеты, их зависимости и состав, диаграммы коопераций анализа). Анализ архитектуры, прецедентов, классов и пакетов. Граничные, управляющие и классы сущностей. Модель проектирования (подсистемы всех уровней, их состав, интерфейсы и зависимости, диаграмма развертывания и активные классы, примеры диаграмм взаимодействия подсистем). Проектирование архитектуры, прецедентов, классов и подсистем. Модели реализации (компоненты, интерфейсы и подсистемы реализации, стереотипы и зависимости файлов). Реализация архитектуры, подсистем, классов. Сборка системы. Тестирование модулей. Цели, методы и методики тестирования: модульного, интеграционного, регрессионного и системного. Трассировка между элементами моделей различных рабочих процессов.

    Лабораторные работы по модулю 1 (18 часов).

    1. Инструментальные средства управления проектом и совместной разработкой. Оценка чувствительности программного проекта к изменению его характеристик. График задач и выполнение распределения ресурсов. (6 часов)

    2. Инструментальные средства управления версиями и составления проектной документации. (6 часов).

    3. Сбор и анализ требований при разработке ПО. Построение модели требований и модели анализа в инструментальной среде. (6 часов).

    Самостоятельная работа по модулю 1 (11 часов).

    1. Проработка учебного материала лекций (2 часа).

    2. Подготовка к лабораторным работам и написание отчета (6 часов).

    3. Подготовка к рубежному контролю (3 часа).



    Модуль 2 – Разработка программного обеспечения с применением CASE-средств и шаблонов проектирования (24 часа).

    Лекции по модулю 2 (9 часов).

    1. Проектирование программных систем (2 часа).

    Предварительное и детальное проектирование. Проектирование пользовательского интерфейса. Структурирование системы. Модели архитектуры: хранилище данных, клиент-сервер, трехуровневая модель, многоуровневая модель, каналы и фильтры, компонентная модель и каркасы. Модели управления: вызов-возврат, менеджер, широковещательная модель, модель с прерываниями. Интерфейсы взаимодействия на основе: API, иерархии классов, форматов данных, компонентных технологий. Декомпозиция подсистем на модули. Оптимальное разбиение. Типы связности модуля: функциональная, информационная, коммуникативная, процедурная, временная, логическая и объектная связность, связность по совпадению. Типы сцепление модулей: по данным, по образцу, по управлению, по внешним ссылкам, по общей области, по содержанию. Оценка качества проекта. Сложность модуля: объем, длина, цикломатическая сложность. Сложность программной системы. Иерархическая структура. Метрики высоты, ширины, невязки. Коэффициенты объединения по входу и по выходу. Оценка сложности системы. Метрики объектно-ориентированных систем: Чидамбера и Кемерера, Лоренца и Кидда, Абреу.

    1. Разработка структурного проекта (2 часа).

    Выделение уровней. Управление зависимостями. Устранение циклической зависимости. Зависимости наследования, уровней, методов. Зависимости реализации и интерфейсов. Использование интерфейсов для устранения циклических зависимостей. Синхронные и асинхронные сообщения. Организация подписки. Знакомства и пакет знакомств. Структурные шаблоны: MVC, PCMEF и PCMEF+. Подсистемы шаблонов, их назначение и схема взаимодействия.

    1. Шаблоны и паттерны проектирования (3 часа).

    Назначение и принцип описания. Параметры. Паттерны для реализации бизнес-логики: сценарий транзакций, модель предметной области, модуль таблицы, слой служб. Паттерны для работы с базой данных: шлюз таблицы, шлюз записи, активная запись, медиатор (посредник). Вспомогательные паттерны. Паттерны GoF: структурные, порождающие и поведенческие, паттерны классов и объектов. Паттерны пользовательского интерфейса: наблюдатель, абстрактная фабрика, фасад, цепочка обязанностей, посредник, декоратор и команда. Диаграммы классов и последовательностей для паттернов GoF. Паттерны реализации программного проекта.

    1. Тестирование программного обеспечения (2 часа).

    Назначение и цели. Возможности. Тестовый вариант. Критерии разработки и оценки качества. Виды тестирования: модульное, интеграционное, регрессионное и системное. Виды системного тестирования. Драйверы и заглушки. Функциональное и структурное тестирование. Особенности и возможности. Тестирование базового пути. Тестирование условий. Тестирование ветвей и операторов отношений. Тестирование данных. Тестирование циклов. Разбиение по эквивалентности. Анализ граничных значений.

    Лабораторные работы по модулю 2 (15 часов).

    1. Построение моделей проектирования и реализации в инструментальной среде. Применение шаблонов проектирования при разработке ПО. Прямое и обратное проектирование. Автоматическая генерация кода. (8 часов).

    2. Инструментальные средства для тестирования и оценки качества ПО на основе метрик. Автоматизация тестирования. Расчет метрик. (7 часов)

    3. Создание базы данных NoSQL и приложения для работы с ней. (8 часов)

    4. Создание приложения для работы с постреляционной базой данных. Использование LINQ и проекции классов. (8 часов).

    Самостоятельная работа по модулю 2 (10 часов).

    1. Проработка учебного материала лекций (2 часа).

    2. Подготовка к лабораторным работам и написание отчета (4 часа).

    3. Выполнение домашнего задания (4 часа).