• 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