We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Software Design

2023/2024
Academic Year
RUS
Instruction in Russian
4
ECTS credits
Course type:
Compulsory course
When:
2 year, 1-3 module

Instructor


Шампоров Василий Александрович

Программа дисциплины

Аннотация

Дисциплина “Конструирование программного обеспечения” является одной из ключевых дисциплин из цикла курсов подготовки современного специалиста в области информационных технологий, т.к. дает полную картину всего цикла промышленной разработки программного обеспечения с использованием современных методологий, технологий и инструментария разработки. В рамках данного курса рассматриваются все этапы разработки и закладываются основы теоретического и практического подходов к самому процессу разработки, как к четкой последовательности фаз, приводящей к гарантированному результату в заданных временных рамках и с заданным качеством.
Цель освоения дисциплины

Цель освоения дисциплины

  • Изучение основных понятий разработки программного обеспечения, понятия качества и критериев качества
  • Изучение жизненного цикла разработки программного обеспечения, а также наиболее распространенных идеологий и методологий построения жизненного цикла
  • Изучение требований к разрабатываемому программному обеспечению, их виды и роль в жизненном цикле
  • Изучение основных принципов и стратегий при разработке программного обеспечения, а также наиболее часто встречающиеся ошибки управления и развития программного проекта
  • Изучение проектирования программного обеспечения, архитектуры и дизайна программного обеспечения
  • Изучение объектно-ориентированного проектирования, применяемых приемов и методов
  • Моделирование программных проектов с использованием UML
  • Изучение инструментальных средств разработки программного обеспечения
  • Изучение метрик процесса разработки и мировых стандартов качества О
Планируемые результаты обучения

Планируемые результаты обучения

  • Владеть методами и инструментальными средствами разработки программ
  • Знает жизненный цикл программного продукта
  • Знает классические принципы проектирования
  • Знает методы проектирования: Абстракция, Инкапсуляция, Декомпозиция (модульность), Иерархическая организация, Типизация, Повторное использование
  • Знает понятия каскадная модель: классическая; с повторениями; прототипирования; Итерационная (инкрементная) модель
  • Знает предметную область курса «Программная инженерия»
  • Знает способы выражения результатов проектирования
  • Знает требования системные/разработчика (Dтребования)
  • Знает факторы и критерии качества программного обеспечения
  • Знать основные факты, концепции, принципы и теории, связанные с промышленным процессом разработки ПО
  • Уметь подбирать наиболее подходящие методы и техники и применять их при разработке программ, с учетом различных аспектов поставленной задачи, таких как ограничение по времени, человеческим ресурсам, качеству
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в программную инженерию
  • Понятие качества ПО. Критерии качества
  • Жизненный цикл программного продукта и его этапы
  • Модели жизненного цикла и их применимость
  • Требования заказчика/разработчика. Классификация требований.
  • Введение в Проектирование ПО. Архитектура. Дизайн.
  • Объектно-ориентированное проектирование. Ортогональность
  • Методы проектирования
  • Объекты. Отношения между объектами
  • Классы. Интерфейс. Тип объекта
  • Отношения между классами
  • Полиморфизм. Множественное наследование. Мультиметоды.
  • Операции приведения типа. Инстанцирование (шаблона).
  • Объектно-ориентированный анализ
  • Основные приемы защиты от ошибок
  • Регулярное тестирование. Автоматизация тестирования
  • Системы контроля версий (Version Control System)
  • Системы отслеживания запросов (Bug-tracking System)
  • Моделирование с использованием UML.
  • Метрики процесса разработки ПО
  • Менеджмент качества
  • Мировые стандарты качества
Элементы контроля

Элементы контроля

  • неблокирующий Практические домашние задания - модуль 1
  • неблокирующий Практические домашние задания - модуль 2
  • неблокирующий Практические домашние задания - модуль 3
  • блокирующий Экзамен - модуль 2
  • блокирующий Экзамен - модуль 3
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 учебный год 2 модуль
    0.25 * Практические домашние задания - модуль 1 + 0.25 * Практические домашние задания - модуль 2 + 0.5 * Экзамен - модуль 2
  • 2023/2024 учебный год 3 модуль
    0.5 * Практические домашние задания - модуль 3 + 0.5 * Экзамен - модуль 3
Список литературы

Список литературы

Рекомендуемая основная литература

  • Котляров, В. П. Основы тестирования программного обеспечения : учебное пособие / В. П. Котляров. — 2-е изд. — Москва : ИНТУИТ, 2016. — 248 с. — ISBN 5-9556-0027-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100352 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Рекомендуемая дополнительная литература

  • Black, R. (2011). Pragmatic Software Testing : Becoming an Effective and Efficient Test Professional. Chichester: Wiley. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=364274

Авторы

  • Асеева Наталья Владимировна