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 Systems Architecture Design

2021/2022
Academic Year
ENG
Instruction in English
6
ECTS credits
Course type:
Compulsory course
When:
3 year, 4 module

Course Syllabus

Abstract

This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, you will gain a foundation for more complex software applications. Finally, you will identify problematic software designs by referencing a catalog of code smells. You will be challenged in the Capstone Project to redesign an existing Java-based Android application to implement a combination of design patterns. You will also critique a given Java codebase for code smells. After completing this course, you will be able to: 1.Demonstrate how to use design patterns to address user interface design issues. 2. Identify the most suitable design pattern to address a given application design problem. 3. Apply design principles (e.g., open-closed, dependency inversion, least knowledge). 4. Critique code by identifying and refactoring anti-patterns. 5. Apply the model-view-controller architectural pattern.
Learning Objectives

Learning Objectives

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

Expected Learning Outcomes

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

Course Contents

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

Assessment Elements

  • non-blocking лабораторная работа
  • non-blocking контрольная работа
  • non-blocking экзамен
    "Экзамен проводится в устной форме (опрос по материалам курса). Экзамен проводится на платформе MS Teams (https://teams.microsoft.com). К экзамену необходимо подключиться согласно расписанию ответов, высланному преподавателем на корпоративные почты студентов накануне экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка MS Teams. Для участия в экзамене студент обязан: поставить на аватар свою фотографию, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи до 5 минут. Долговременным нарушением связи во время экзамена считается нарушение 5 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи."
  • non-blocking лабораторная работа
  • non-blocking контрольная работа
  • non-blocking экзамен
    "Экзамен проводится в устной форме (опрос по материалам курса). Экзамен проводится на платформе MS Teams (https://teams.microsoft.com). К экзамену необходимо подключиться согласно расписанию ответов, высланному преподавателем на корпоративные почты студентов накануне экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка MS Teams. Для участия в экзамене студент обязан: поставить на аватар свою фотографию, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи до 5 минут. Долговременным нарушением связи во время экзамена считается нарушение 5 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи."
Interim Assessment

Interim Assessment

  • 2021/2022 4th module
    0.5 * лабораторная работа + 0.5 * контрольная работа
Bibliography

Bibliography

Recommended Core Bibliography

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

Recommended Additional Bibliography

  • 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

Authors

  • SHAROV GELIY VLADIMIROVICH