• 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

Авторы

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