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

Технологии разработки программного обеспечения

рабочая программа дисциплины
Закреплена за кафедройКафедра вычислительной техники и электроники
Направление подготовки09.03.01. Информатика и вычислительная техника
Форма обученияОчная
Общая трудоемкость3 ЗЕТ
Учебный план09_03_01_ИиВТ-2-2019
Часов по учебному плану 108
в том числе:
аудиторные занятия 40
самостоятельная работа 32
контроль 36
Виды контроля по семестрам
экзамены: 8

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

Курс (семестр) 4 (8) Итого
Недель 10
Вид занятий УПРПДУПРПД
Лекции 40 40 40 40
Сам. работа 32 32 32 32
Часы на контроль 36 36 36 36
Итого 108 108 108 108

Программу составил(и):
старший преподаватель, Уланов П.Н.

Рецензент(ы):
к.ф.-м.н., доцент, Рудер Д.Д.

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

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 09.03.01 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА (уровень бакалавриата) (приказ Минобрнауки России от 12.01.2016г. №5)

составлена на основании учебного плана:
09.03.01 Информатика и вычислительная техника
утвержденного учёным советом вуза от 25.06.2019 протокол № 9.

Рабочая программа одобрена на заседании кафедры
Кафедра вычислительной техники и электроники

Протокол от 26.06.2019 г. № 69/18-19
Срок действия программы: 2019-2020 уч. г.

Заведующий кафедрой
д.т.н., Седалищев Виктор Николаевич, проф., зав. кафедрой "Вычислительной техники и электроники"


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

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

Кафедра вычислительной техники и электроники

Протокол от 26.06.2019 г. № 69/18-19
Заведующий кафедрой д.т.н., Седалищев Виктор Николаевич, проф., зав. кафедрой "Вычислительной техники и электроники"


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

1.1.Целями освоения учебной дисциплины «Технология разработки программного обеспечения» являются:
а) формирование у будущих специалистов теоретических знаний и практических навыков в разработке ПО для решения прикладных задач различных предметных областей;
б) показать значимость технологии разработки ПО как современного направления прикладной информатики;
в) развитие умений и навыков проектирования и разработки прикладных программ на языках высокого уровня;
г) знакомство с современными инструментальными системами для проектирования и разработки программ на языках программирования высокого уровня.

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

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

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

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

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Введение. Понятие «информация». Представление информации. Переход от представления к информации
1.1. Понятие «информация». Примеры представления информации. Представление ин-формации в виде термов. Редукция. Высказывательные формы. Представление ин-формации в нормальной форме. Переход от представления к информации. Преобра-зование представлений. Последовательности литер и формальные языки. Лекции 8 2 Л1.2, Л1.1
1.2. Способы представления информации с учетом особенностей предметной области и способов разработки ПО. Разработка формальных правил перехода от информации к ее представлению. Сам. работа 8 2 Л1.2, Л1.1
Раздел 2. Основы теории программирования. Вычислительные структуры и алгоритмы. Языки программирования
2.1. Понятие «алгоритм». Неформальные описания алгоритмов. Формальные описания алгоритмов через замену текстов. Алгоритмы текстовых замен и отображения, кото-рые ими индуцируются. Алгоритмы как системы подстановки термов. Лекции 8 2 Л1.2, Л1.1
2.2. Правила и системы подстановки термов Вычислительные структуры. Функции и множества как вычислительные структуры. Сигнатуры и основные термы. Термы со свободными и связанными идентификаторами. Вычислительные схемы для интер-претации основных термов. Лекции 8 2 Л1.2, Л1.1
2.3. Языки программирования (ЯП) и программирование. Описание формальных языков, формы Бэкуса – Наура (БНФ). БНФ – нотация. Синтаксические диаграммы и контек-стные условия. Понятие «семантика». Реализация языков программирования. Мето-дика программирования. Принципы программирования и вычислительные структу-ры. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
2.4. Использование вычислительных структур при разработке современного ПО. Фор-мальные языки для разработки инструментальных сред программирования. Сам. работа 8 2 Л2.1, Л2.2, Л1.2, Л1.1
Раздел 3. Технологии программирования. Аппликативные и императивные языки программирования. Структуры данных и типизация в программировании
3.1. Аппликативные языки программирования. Элементы аппликативных ЯП. Синтаксис выражений и вычислительных структур аппликативных ЯП. Константы, идентифи-каторы и выражения. Условные выражения. Функции и их абстрактные описания. Расширение аппликативных ЯП посредством формальных объявлений. Формальные объявления функций и элементов. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
3.2. Рекурсивные объявления функций и их толкование. Виды и формы рекурсий. Техно-логия аппликативного программирования. Постановка задачи и введение специфи-каций. Обобщение постановки задачи. Структурирование. Вложенные структуры. Вывод рекурсий. Подавление параметров и введение подчиненных вычислительных предписаний. Эффективность программ. Документирование, тестирование и инте-грация программ. Корректность программ. Техника доказательства корректности. Частичная корректность Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
3.3. Императивные языки программирования. Структуры, ориентированные на присваи-вание. Синтаксис и семантика императивных ЯП. Операторы. Переменные и при-сваивание. Состояние программы. Функциональное значение операторов и их операционная семантика. Технология императивного программирования. Метод утверждений и доказательство терминированности. Объявления типов в программировании. Скалярные элементы. Объявление типов посредством перечисления. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
3.4. Объявление при помощи прямого декартова произведения. Декартов кортеж. Вари-антные типы. Множества и частичные области. Массивы. Одномерные массивы. Многомерные массивы. Динамические и гибкие массивы. Конечные множества как вычислительные структуры. Последовательности. Древовидные вычислительные структуры. Рекурсивные объявления типов. Списковые структуры. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
3.5. Технологии имитационного моделирования в проектировании ПО. Адаптивные тех-нологии разработки ПО. Сам. работа 8 4 Л2.1, Л2.2, Л1.2, Л1.1
Раздел 4. Абстрактные типы данных и объектно-ориентированное программирование
4.1. Понятие абстрактного типа данных (АТД). Пользовательские типы. Тип структуры. Элементы структур. Агрегатные типы. Проектирование типов данных соответст-вующих задаче. Объектно-ориентированное программирование (ООП). Объектно-ориентированный подход. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
4.2. Основные принципы объектно-ориентированного программирования. Объект, сооб-щение, класс, экземпляр объекта и метод. Абстракция, инкапсуляция, наследование и полиморфизм. Объектно-ориентированное проектирование. Классы. Описания протокола класса. Инструментальная реализация принципов ООП. Объектно-ориентированные языки программирования. Лекции 8 4 Л2.1, Л2.2, Л1.2, Л1.1
Раздел 5. Технологии проектирования программного обеспечения (ПО). Жизненный цикл ПО. Модели проектирования ПО. Руководство программным проектом
5.1. Конструирование ПО. Организация процесса конструирования ПО. Классический жизненный цикл ПО. Модели проектирования ПО. Макетирование. Стратегии кон-струирования ПО. Быстрая разработка приложений. Спиральная модель. Компо-нентно-ориентированная модель. Тяжеловесные и облегченные процессы. XP-процесс. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
5.2. Модели качества процессов конструирования. Руководство программным проектом. Процесс руководства проектом. Планирование проектных задач. Метрики про-граммного проекта. Измерения, меры и метрики. Размерно-ориентированные метри-ки. Функционально-ориентированные метрики. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
5.3. Современные методы организации разработки ПО и управления программными про-ектами. Сам. работа 8 4 Л2.1, Л2.2, Л1.2, Л1.1
Раздел 6. Анализ ПО. Структурный анализ ПО. Методы анализа ПО ориентированные на структуры данных
6.1. Классические методы анализа программных проектов. Структурный анализ. Диа-граммы потоков данных. Описание потоков данных и процессов. Расширения описа-ний для систем реального времени. Расширение возможностей описания элементов управления. Методы анализа, ориентированные на структуры данных. Метод анализа Варнье—Орра. диаграммы Варнье. Метод анализа Джексона. Этапы методики анализа Джексона. Примеры анализа и описания программных проектов. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
6.2. Современные методы анализа используемые при разработке ПО. Сам. работа 8 6 Л2.1, Л2.2, Л1.1
Раздел 7. Синтез программных систем. Структурное проектирование ПО. Декомпозиция подсистем на модули. Языки описания программных проектов
7.1. Особенности процесса синтеза программных систем. Особенности этапа проектиро-вания. Структурирование системы. Моделирование управления системой. Декомпо-зиция подсистем на модули. Свойства модулей. Сложность программной системы. Основы проектирования программных, систем. Классические методы проектирова-ния. Языки описания программных проектов. Универсальный язык описания про-граммных проектов (UML). Case – системы. Элементы описания Use Case. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
7.2. Современные методы синтеза используемые при разработке ПО. Сам. работа 8 4 Л2.1, Л2.2, Л1.1
Раздел 8. Принципы объектно-ориентированного представления программных систем. Описание явлений объектами
8.1. Принципы объектно-ориентированного представления программных систем. Абст-рагирование, инкапсуляция, модульность, иерархическая организация. Объекты и их общие характеристики. Отношения между объектами. Их виды. Классы. Их свойства и характеристики. Отношения между классами. Ассоциации классов. Унифициро-ванный процесс разработки объектно-ориентированных ПС. Эволюционно-инкрементная организация жизненного цикла разработки. Управление риском. Эта-пы унифицированного процесса разработки. Примеры объектно-ориентированной разработки программной системы. Лекции 8 2 Л2.1, Л2.2, Л1.2, Л1.1
8.2. Современные методы организации разработки ПО и управления программными про-ектами. Тенденции развития инструментальных сред разработки. Сам. работа 8 2 Л2.1, Л2.2, Л1.2, Л1.1
Раздел 9. Технологии программирования с использованием ресурсов операционной системы. Визуальное программирование
9.1. Понятие ресурсов операционной системы (ОС). Аппаратные и программные ресур-сы. Интерфейс программных приложений ОС (API). Системные вызовы ОС (API – функции). Структура программной системы использующей ресурсы ОС. Инструмен-тальные среды, использующие ресурсы ОС. Визуальные инструментальные среды. Визуальные программные системы их структура. Примеры разработки визуальных программных систем. Лекции 8 4 Л2.1, Л2.2, Л1.2, Л1.1
9.2. Методы искусственного интеллекта в разработке ПО. Современные автоматизиро-ванные системы разработки ПО. Сам. работа 8 4 Л2.1, Л2.2, Л1.2
Раздел 10. Основные понятия и принципы тестирования ПО. Анализ сложности программных систем. Меры сложности
10.1. Тестирование программной системы (ПС). Этапы тестирования ПС. Стратегии раз-работки тестов. Автономное и комплексное тестирование ПС. Понятие качества ПС. Критерии качества ПС. Подходы к обеспечению качества ПС. Сложность ПС. Опре-деление сложности ПС. Характеристики сложности. Меры сложности. Вычисление сложности. Анализ сложности ПС. Лекции 8 4 Л2.1, Л2.2, Л1.2, Л1.1
10.2. Разработка программных систем реального режима времени. Разработка сетевых и параллельных программных систем. Сам. работа 8 2 Л2.1, Л2.2, Л1.2, Л1.1
10.3. Современные системы разработки и тестирования алгоритмов. Современные методы комплексного тестирования используемые при разработке ПО. Сам. работа 8 2 Л2.1, Л2.2, Л1.2, Л1.1
Раздел 11. Аттестация
11.1. Экзамен 8 36 Л2.1, Л2.2, Л1.2, Л1.1

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

5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины
Принципы проектирования.
Организация процесса конструирования ПО.
Классический жизненный цикл ПО.
Модели проектирования ПО.
Стратегии конструирования ПО.
Модели качества процессов конструирования.
Руководство программным проектом.
Планирование проектных задач.
Метрики программного проекта.
Размерно-ориентированные метрики.
Функционально-ориентированные метрики.
Классические методы анализа программных проектов.
Структурный анализ. Диаграммы потоков данных.
Описание потоков данных и процессов.
Методы анализа, ориентированные на структуры данных.
Метод анализа Варнье—Орра. диаграммы Варнье.
Метод анализа Джексона.
Этапы методики анализа Джексона.
Особенности процесса синтеза программных систем. Особенности этапа проектирования.
Моделирование управления системой. Декомпозиция подсистем на модули. Свойства модулей.
Сложность программной системы.
Основы проектирования программных, систем.
Классические методы проектирования.
Языки описания программных проектов. Универсальный язык описания программных проектов (UML).
Case – системы. Элементы описания Use Case.
Принципы объектно-ориентированного представления программных систем.
Классы. Их свойства и характеристики.
Унифицированный процесс разработки объектно-ориентированных ПС.
Эволюционно-инкрементная организация жизненного цикла разработки. Управление риском.
Этапы унифицированного процесса разработки.
Понятие ресурсов операционной системы (ОС). Аппаратные и программные ресурсы.
Интерфейс программных приложений ОС (API). Системные вызовы ОС (API – функции).
Структура программной системы использующей ресурсы ОС.
Инструментальные среды, использующие ресурсы ОС.
Визуальные инструментальные среды.
Тестирование программной системы (ПС). Этапы тестирования ПС.
Стратегии разработки тестов. Автономное и комплексное тестирование ПС.
Понятие качества ПС. Критерии качества ПС. Подходы к обеспечению качества ПС.
Сложность ПС. Определение сложности ПС.
Характеристики сложности. Меры сложности.
Вычисление сложности. Анализ сложности ПС.
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
Программный комплекс для численного интегрирования.
Программный комплекс для решения дифференциальных уравнений.
Программный комплекс для выполнения операций с матрицами.
Программный комплекс для выполнения операций с полиномами.
Программный комплекс – симулятор ИНС.
Программный комплекс для выполнения операций с векторами.
5.3. Фонд оценочных средств для проведения промежуточной аттестации
в Приложении

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Сергиевский Г.М., Волченков Н.Г. Функциональное и логическое программирование: учеб. пособие для вузов М.: Академия, 2010
Л1.2 Незнанов А.А. Программирование и алгоритмизация: учебник М.: Академия, 2010
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Т. А. Павловская С / С++. Программирование на языке высокого уровня: учеб. для вузов СПб.[и др.]: Питер, 2007
Л2.2 В. В. Лаптев С++. Объектно-ориентированное программирование: учеб. пособие СПб.[и др.]: Питер, 2008
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
6.3. Перечень программного обеспечения
Visual Studio
Условия использования: https://code.visualstudio.com/license)
Open Office – Условия использования по ссылке http://www.openoffice.org/license.html
LibreOffice
Условия использования: https://ru.libreoffice.org/about-us/license/
7-zip
Условия использования: https://www.7-zip.org/license.txt
Acrobat Reader
Условия использования: http://wwwimages.adobe.com/content/dam/Adobe/en/legal/servicetou/Acrobat_com_Additional_TOU-en_US-20140618_1200.pdf
Mozila FireFox
Условия использования: https://www.mozilla.org/en-US/about/legal/eula/
Chrome
Условия использования: http://www.chromium.org/chromium-os/licenses
Microsoft Windows
6.4. Перечень информационных справочных систем
Не требуется

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

Аудитория Назначение Оборудование
419К лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации; Учебная мебель на 17 посадочных мест; рабочее место преподавателя; доска маркерная - 1 шт.; компьютеры: NAIO Corp Z520, НЭТА - 4 in - 13 ед.
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
001вК склад экспериментальной мастерской - помещение для хранения и профилактического обслуживания учебного оборудования Акустический прибор 01021; виброизмеритель 00032; вольтметр Q1202 Э-500; вольтметр универсальный В7-34А; камера ВФУ -1; компьютер Турбо 86М; масспектрометр МРС -1; осциллограф ЕО -213- 2 ед.; осциллограф С1-91; осциллограф С7-19; программатор С-815; самописец 02060 – 2 ед.; стабилизатор 3218; терц-октавный фильтр 01023; шкаф вытяжной; шумомер 00026; анализатор АС-817; блок 23 Г-51; блок питания "Статрон" – 2 ед.; блок питания Ф 5075; вакуумный агрегат; весы; вольтметр VM -70; вольтметр В7-15; вольтметр В7-16; вольтметр ВУ-15; генератор Г-5-6А; генератор Г4-76А; генератор Г4-79; генератор Г5-48; датчик колебаний КВ -11/01; датчик колебаний КР -45/01; делитель Ф5093; измеритель ИМП -2; измеритель параметров Л2-12; интерферометр ИТ 51-30; источник "Агат" – 3 ед.; источник питания; источник питания 3222; источник питания ЭСВ -4; лабораторная установка для настройки газовых лазеров; лазер ЛГИ -21; М-кальк-р МК-44; М-калькул-р "Электроника"; магазин сопротивления Р4075; магазин сопротивления Р4077; микроскоп МБС -9; модулятор МДЕ; монохроматор СДМС -97; мост переменного тока Р5066; набор цветных стекол; насос вакумный; насос вакуумный ВН-01; осциллограф С1-31; осциллограф С1-67; осциллограф С1-70; осциллограф С1-81; осциллоскоп ЕО -174В – 2 ед.; пентакта L-100; пирометр "Промень"; пистонфон 05001; преобразователь В9-1; прибор УЗДН -2Т; скамья оптическая СО 1м; спектограф ДФС -452; спектограф ИСП -51; стабилизатор 1202; стабилизатор 3217 – 4 ед.; стабилизатор 3218; стабилизатор 3222 – 3 ед.; станок токарный ТВ-4; усилитель мощности ЛВ -103 – 4 ед.; усилитель У5-9; центрифуга ВЛ-15; частотомер Ч3-54А; шкаф металлический; эл.двигатель; электродинамический калибратор 11032

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