МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный университет»

Архитектура программных систем
рабочая программа дисциплины

Закреплена за кафедройКафедра информатики
Направление подготовки01.03.02. Прикладная математика и информатика
ПрофильМатематическое моделирование и информационные технологии. ФГОС 3++
Форма обученияОчная
Общая трудоемкость3 ЗЕТ
Учебный план01_03_02_ПМиИ-1-2020
Часов по учебному плану 108
в том числе:
аудиторные занятия 42
самостоятельная работа 39
контроль 27
Виды контроля по семестрам
экзамены: 7

Распределение часов по семестрам

Курс (семестр) 4 (7) Итого
Недель 18,5
Вид занятий УПРПДУПРПД
Лекции 18 18 18 18
Практические 24 24 24 24
Сам. работа 39 39 39 39
Часы на контроль 27 27 27 27
Итого 108 108 108 108

Программу составил(и):
к.т.н., Доцент, Рязанов М.А.

Рецензент(ы):
к.ф.-м.н., Доцент, Пономарев И.В.

Рабочая программа дисциплины
Архитектура программных систем

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 01.03.02 Прикладная математика и информатика (уровень бакалавриата) (приказ Минобрнауки России от 10.01.2018г. №9)

составлена на основании учебного плана:
01.03.02 Прикладная математика и информатика
утвержденного учёным советом вуза от 30.06.2020 протокол № 6.

Рабочая программа одобрена на заседании кафедры
Кафедра информатики

Протокол от 31.08.2020 г. № №1
Срок действия программы: 2020-2021 уч. г.

Заведующий кафедрой
к.ф.-м.н., доцент Козлов Д.Ю.

Визирование РПД для исполнения в очередном учебном году

Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2020-2021 учебном году на заседании кафедры

Кафедра информатики

Протокол от 31.08.2020 г. № №1
Заведующий кафедрой к.ф.-м.н., доцент Козлов Д.Ю.

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

1.1.Цель – дать знания, необходимые для проектирования и разработки архитектуры программного обеспечения. Данный курс призван выработать у студентов первоначальные навыки, необходимые для формирования структуры программной системы, грамотного проектирования взаимодействия её составных частей. Кроме того, цель данного курса - познакомить студентов с наиболее распространёнными в промышленном программировании подходами к разработке архитектуры программных систем.
В соответствии с указанной целью поставлены следующие задачи курса:
- углубить понимание студентами основных понятий объектно-ориентированного программирования;
- познакомить студентов с наиболее распространёнными архитектурными решениями (паттернами проектирования);
- продемонстрировать эффективность паттернов проектирования для решения практических задач.

2. Место дисциплины в структуре ООП

Цикл (раздел) ООП: Б1.В.ДВ.01.02

3. Компетенции обучающегося, формируемые в результате освоения дисциплины

ПК-3: Способность разрабатывать и применять математические методы, системное и прикладное программное обеспечение, автоматизированные системы вычислительных комплексов, сервисы, операционные системы и распределенные базы данных для решения задач производственно-технологической деятельности
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.методы моделирования программного обеспечения
методы разработки архитектуры программного обеспечения
3.2.Уметь:
3.2.1.моделировать программные системы
разрабатывать архитектуру программных систем
эффективно работать в качестве члена команды по разработке программного обеспечения
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.владеть интегрированной средой разработки программных Microsoft Visual Studio
владеть способностью брать на себя ответственность за результаты работы по разработке программных средств

4. Структура и содержание дисциплины

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Основы ООП. Основные понятия, признаки и качества удачных архитектурных решений
1.1. Основные понятия ООП: класс, объект, наследование, полиморфизм, инкапсуляция. Понятие сигнатуры метода, интерфейса класса Лекции 7 2 Л1.1, Л2.1
1.2. Освоение языка высокого уровня (C#), повторение пройденного материала, повторение основных понятий ООП Сам. работа 7 8 Л1.1, Л2.1
1.3. Освоение объектно-ориентированного языка программирования высокого уровня (C#). Создание элементарного объектно-ориентированного приложения. Анализ и создание объектной модели для предметов окружающего мира (с применением основ UML-моделирования) Практические 7 4 Л1.1, Л2.1
Раздел 2. Порождающие паттерны проектирования
2.1. Порождающие паттерны. Краткая характеристика, типы. Паттерн Одиночка (Singleton). Паттерн Фабричный метод (Factory Method). Паттерн Абстрактная фабрика (Abstract Factory). Лекции 7 2 Л1.1, Л2.1
2.2. Создание и доработка примера использования паттерна "Абстрактная фабрика" на примере игровых армий. Практические 7 4 Л1.1, Л2.1
2.3. Паттерн Строитель (Builder). Паттерн Прототип (Prototype). Сходства, различия порождающих шаблонов. Лекции 7 2 Л1.1, Л2.1
2.4. Создание и доработка примера использования паттерна «Строитель» на примере сборщика компьютеров. Обсуждение результатов, сравнение реализаций шаблонов «Строитель» и «Абстрактная фабрика». Практические 7 4 Л1.1, Л2.1
2.5. Повторение пройденного материала, доработка систем, созданных на лабораторных занятиях Сам. работа 7 8 Л1.1, Л2.1
Раздел 3. Структурные паттерны проектирования
3.1. Структурные паттерны. Краткая характеристика. Типы. Паттерн Адаптер. Паттерн Фасад (Facade).Паттерн Мост (Bridge). Лекции 7 2 Л1.1, Л2.1
3.2. Основы UML. Диаграмма классов, диаграмма взаимодействий. Основные принципы проектирования. Понятие паттерна проектирования. Три класса паттернов Лекции 7 2 Л1.1, Л2.1
3.3. Реализация паттерна "Мост" на примере различных графических платформ. Практические 7 4 Л1.1, Л2.1
3.4. Паттерн «Декоратор»(Decorator). Паттерн «Приспособленец»(Flyweight). Паттерн «Заместитель»(Proxy) Лекции 7 2 Л1.1, Л2.1
3.5. Реализация паттерна "Заместитель" на примере задач с отложенной инициализацией. Практические 7 2 Л1.1, Л2.1
3.6. Повторение пройденного материала, доработка систем, созданных на лабораторных занятиях Сам. работа 7 8 Л1.1, Л2.1
Раздел 4. Раздел 4. Паттерны поведения
4.1. Паттерны поведения. Краткая характеристика. Типы. Паттерн Цепочка обязанностей (Chain of Responsibility). Паттерн Команда (Command). Паттерн Итератор (Iterator). Паттерн Хранитель (Memento) (Iterator). Лекции 7 2 Л1.1, Л2.1
4.2. Реализация паттерна «Команда» на примере меню графического редактора Практические 7 2 Л1.1, Л2.1
4.3. Паттерн Стратегия (Strategy). Паттерн Состояние (State). Паттерн Обозреватель (Observer). Паттерн Шаблонный метод (Template method) Лекции 7 2 Л1.1, Л2.1
4.4. Реализация паттерна «Стратегия» Практические 7 2 Л1.1, Л2.1
4.5. Повторение пройденного материала, доработка систем, созданных на лабораторных занятиях Сам. работа 7 8 Л1.1, Л2.1
Раздел 5. Примеры подходов к проектированию программных систем
5.1. Трёхуровневая модель архитектуры. Паттерн MVC (модель, вид, представление) Лекции 7 2 Л1.1, Л2.1
5.2. Анализ простейших систем и построение их архитектуры. Объектная декомпозиция, разделение объектов на слои, согласно трёхслойной модели Практические 7 2 Л1.1, Л2.1
5.3. Повторение пройденного материала, самостоятельный анализ простейшей архитектуры на примерах различных программных систем. Сам. работа 7 7 Л1.1, Л2.1

5. Фонд оценочных средств

5.1. Контрольные вопросы и задания
Представлен в отдельном файле
5.2. Темы письменных работ (эссе, рефераты, курсовые работы и др.)
Представлен в отдельном файле
5.3. Фонд оценочных средств
Представлен в отдельном файле
Приложения
Приложение 1.   ФИиИТ_1_ФОС_АПС-2.docx

6. Учебно-методическое и информационное обеспечение дисциплины

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Рыбальченко М.В. АРХИТЕКТУРА ИНФОРМАЦИОННЫХ СИСТЕМ. Учебное пособие для вузов: М.:Издательство Юрайт, 2018 https://biblio-online.ru/book/453CB056-891F-4425-B0A2-78FFB780C1F1
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Сергей Тепляков Паттерны проектирования на платформе .NET: Паттерны проектирования на платформе .NET СПб.: Питер, 2015 http://sd.blackball.lv/books/16305?mode=read
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Курс в Moodle "Архитектура программных систем" https://portal.edu.asu.ru/course/view.php?id=6827
6.3. Перечень программного обеспечения
Среда разработки Мicrosoft visual studio С++ (версия не ниже 2008)
Microsoft Windows
Microsoft Office
7-Zip
AcrobatReader
6.4. Перечень информационных справочных систем
1. Образовательный портал АлтГУ http://portal.edu.asu.ru/
2. Электронный каталог НБ АлтГУ «Книги»: http://www.lib.asu.ru/app/elecat/elecat=index1?base=book
3. Издательство «Лань» [Электронный ресурс]: электронно-библиотечная система. – URL: http://e.lanbook.com/
4. Издательство «Юрайт» [Электронный ресурс]: электронно-библиотечная система. – URL: http://biblio-online.ru
5. ЭБС «Университетская библиотека online»: https://biblioclub.ru/
6. ЭБС АлтГУ: http://elibrary.asu.ru/
7. Электронная база данных ZBMATH: https://zbmath.org/

7. Материально-техническое обеспечение дисциплины

Аудитория Назначение Оборудование
106Л помещение для хранения и профилактического обслуживания учебного оборудования Стеллажи – 3 шт. осциллограф, паяльная станция, источник тока, переносные ноутбуки
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
107Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 18 посадочных мест; компьютеры: марка HP, модель ProOne 400 - 18 единиц; проектор: марка SMART, модель UF70 - 1 единица; интерактивная доска: марка SMART Board модель SMB680 - 1 единица
207Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; компьютеры: марка DEPO модель Neos 260, мониторы: марка Philips модель 227E3LHSU - 14 единиц

8. Методические указания для обучающихся по освоению дисциплины

Изучение дисциплины завершается экзаменом. Успешное изучение дисциплины требует посещения лекций, активной работы на лабораторных работах, выполнения всех практических заданий преподавателя, ознакомления с основной и дополнительной литературой. Во время лекции студент должен вести краткий конспект. При этом обучающийся должен стараться найти ответы на затруднительные вопросы, используя рекомендуемую литературу или общедоступные ресурсы. Если ему самостоятельно не удалось разобраться в материале, необходимо сформулировать вопросы и обратится за помощью к преподавателю на консультации или ближайшей лекции. Выполнение студентами практических заданий направлено на:
- обобщение, систематизацию, углубление, закрепление полученных теоретических знаний по конкретным темам дисциплин;
- формирование необходимых профессиональных умений и навыков.
Помимо собственно выполнения практических заданий для каждого задания предусмотрена процедура защиты, в ходе которой преподаватель проводит устный или письменный опрос студентов для контроля понимания выполненных ими действий по теме занятия.
Самостоятельная работа.
- При изучении дисциплины не все вопросы рассматриваются на занятиях, часть вопросов рекомендуется преподавателем для самостоятельного изучения.
- Поиск ответов на вопросы и выполнение заданий для самостоятельной работы позволит вам расширить и углубить свои знания по курсу, применить теоретические знания в решении задач практического содержания, закрепить изученное ранее.
- Эти задания следует выполнять не «наскоком», а постепенно, планомерно, следуя порядку изучения тем курса.
- При возникновении вопросов обратитесь к преподавателю в день консультаций на кафедру.
- Выполнив их, проанализируйте качество их выполнения. Это поможет вам развивать умения самоконтроля и оценочные компетенции.
При подготовке к экзамену в дополнение к изучению конспектов лекций, учебно-методических материалов и слайдов, необходимо пользоваться учебной литературой, рекомендованной настоящей программой. При подготовке к экзамену нужно изучить определения всех понятий и теоретические подходы до состояния понимания материала, а также выполнить все практические задания в курсе.