Закреплена за кафедрой | Кафедра вычислительной техники и электроники |
---|---|
Направление подготовки | 09.03.01. Информатика и вычислительная техника |
Форма обучения | Очная |
Общая трудоемкость | 3 ЗЕТ |
Учебный план | 09_03_01_ИиВТ-2-2019 |
|
|
Распределение часов по семестрам
Курс (семестр) | 4 (8) | Итого | ||
---|---|---|---|---|
Недель | 10 | |||
Вид занятий | УП | РПД | УП | РПД |
Лекции | 40 | 40 | 40 | 40 |
Сам. работа | 32 | 32 | 32 | 32 |
Часы на контроль | 36 | 36 | 36 | 36 |
Итого | 108 | 108 | 108 | 108 |
Визирование РПД для исполнения в очередном учебном году
Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2019-2020 учебном году на заседании
кафедры
Кафедра вычислительной техники и электроники
Протокол от 26.06.2019 г. № 69/18-19
Заведующий кафедрой д.т.н., Седалищев Виктор Николаевич, проф., зав. кафедрой "Вычислительной техники и электроники"
1.1. | Целями освоения учебной дисциплины «Технология разработки программного обеспечения» являются: а) формирование у будущих специалистов теоретических знаний и практических навыков в разработке ПО для решения прикладных задач различных предметных областей; б) показать значимость технологии разработки ПО как современного направления прикладной информатики; в) развитие умений и навыков проектирования и разработки прикладных программ на языках высокого уровня; г) знакомство с современными инструментальными системами для проектирования и разработки программ на языках программирования высокого уровня. |
---|
Цикл (раздел) ООП: Б1.В.04 |
ОПК-2 | способностью осваивать методики использования программных средств для решения практических задач |
ПК-3 | способностью обосновывать принимаемые проектные решения, осуществлять постановку и выполнять эксперименты по проверке их корректности и эффективности |
В результате освоения дисциплины обучающийся должен | |
3.1. | Знать: |
---|---|
3.1.1. | - основные методы разработки современного ПО; - принципы организации современного программного обеспечения; - принципы проектирования современного ПО; - принципы работы современных инструментальных сред разработки ПО. |
3.2. | Уметь: |
3.2.1. | - создавать проекты и разрабатывать ПО для решения конкретных задач различных предметных областей; - разрабатывать программные комплексы, используя современные инструментальные среды; - использовать знание принципов разработки ПО в профессиональной деятельности. |
3.3. | Иметь навыки и (или) опыт деятельности (владеть): |
3.3.1. | - навыками составления проектов для разработки современного ПО; - технологиями сбора, обработки, передачи и хранения информации. |
Код занятия | Наименование разделов и тем | Вид занятия | Семестр | Часов | Компетенции | Литература |
---|---|---|---|---|---|---|
Раздел 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.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины |
Принципы проектирования. Организация процесса конструирования ПО. Классический жизненный цикл ПО. Модели проектирования ПО. Стратегии конструирования ПО. Модели качества процессов конструирования. Руководство программным проектом. Планирование проектных задач. Метрики программного проекта. Размерно-ориентированные метрики. Функционально-ориентированные метрики. Классические методы анализа программных проектов. Структурный анализ. Диаграммы потоков данных. Описание потоков данных и процессов. Методы анализа, ориентированные на структуры данных. Метод анализа Варнье—Орра. диаграммы Варнье. Метод анализа Джексона. Этапы методики анализа Джексона. Особенности процесса синтеза программных систем. Особенности этапа проектирования. Моделирование управления системой. Декомпозиция подсистем на модули. Свойства модулей. Сложность программной системы. Основы проектирования программных, систем. Классические методы проектирования. Языки описания программных проектов. Универсальный язык описания программных проектов (UML). Case – системы. Элементы описания Use Case. Принципы объектно-ориентированного представления программных систем. Классы. Их свойства и характеристики. Унифицированный процесс разработки объектно-ориентированных ПС. Эволюционно-инкрементная организация жизненного цикла разработки. Управление риском. Этапы унифицированного процесса разработки. Понятие ресурсов операционной системы (ОС). Аппаратные и программные ресурсы. Интерфейс программных приложений ОС (API). Системные вызовы ОС (API – функции). Структура программной системы использующей ресурсы ОС. Инструментальные среды, использующие ресурсы ОС. Визуальные инструментальные среды. Тестирование программной системы (ПС). Этапы тестирования ПС. Стратегии разработки тестов. Автономное и комплексное тестирование ПС. Понятие качества ПС. Критерии качества ПС. Подходы к обеспечению качества ПС. Сложность ПС. Определение сложности ПС. Характеристики сложности. Меры сложности. Вычисление сложности. Анализ сложности ПС. |
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.) |
Программный комплекс для численного интегрирования. Программный комплекс для решения дифференциальных уравнений. Программный комплекс для выполнения операций с матрицами. Программный комплекс для выполнения операций с полиномами. Программный комплекс – симулятор ИНС. Программный комплекс для выполнения операций с векторами. |
5.3. Фонд оценочных средств для проведения промежуточной аттестации |
в Приложении |
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. Перечень информационных справочных систем | ||||
Не требуется |
Аудитория | Назначение | Оборудование |
---|---|---|
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 |