Обзор дисциплины «Теория и технология программирования»

Семестр: 5-ый,    Трудоёмкость: 144 часа,     Контроль: экзамен и курсовая работа


Цели дисциплины

Целью дисциплины является изучение теоретических, методологических, концептуальных и практических подходов, применяемых коллективами разработчиков при создании крупных программных продуктов в различных предметных областях.

Задачи дисциплины

Задачей дисциплины является изучение базовой терминологии сферы проектирования программных продуктов, методологий и парадигм программирования, методов структурирования данных применительно к объектам химической технологии, методов тестирования, методов декомпозиции задач, этапов жизненного цикла программного продукта, базовых интерфейсов, инструментальных сред программирования, способов оформления программной документации, методов испытаний и оценки качества программных продуктов.

Место дисциплины

Дисциплина входит в базовую часть профессионального цикла образовательной программы как обязательная дисциплина (Б3.Б.5). Студент должен иметь базовые знания о компьютерах и программировании в объёме курса программирования.


Результаты освоения дисциплины

В результате изучения данной учебной дисциплины студент:

Полученные знания могут быть применены на рынке труда в профессиях: системный аналитик, инженер-программист, инженер-тестировщик.


Содержание основных разделов дисциплины

Цикл лекционных и практических занятий по учебной дисциплине включает следующий перечень тем и их краткое содержание:

Введение и терминология

Введение. Базовая терминология. Понятие технологии программирования – как дисциплины проектирования программного обеспечения. История развития дисциплины. Основные задачи дисциплины.

Объект исследования и его архитектура

Понятие программно-технического комплекса как объекта исследования дисциплины. Основные объекты исследования. Понятие обеспечения системы. Виды обеспечения: математическое, методическое, техническое, программное, лингвистическое, правовое, информационное, организационное, эргономическое. Понятие архитектуры программного обеспечения. Виды архитектур.

Терминология программной отрасли

Понятие программы, подпрограммы, сопрограммы. Свойства программы как объекта системы. Понятие составляющих программного обеспечения: программный компонент, комплекс программ, пакет программ, программный модуль, библиотека программ, программная система, сборка программ, программный продукт, программная услуга. Основные понятия: предметная область, конфигурация, окружение, ресурс, среда, задача, функция, функциональность, спецификация, уровень, и т.д. Классификация программ по назначению и по выполнению.

Организация процесса проектирования

ОПонятие программы как изделия и основные задачи проектирования. Стадии и этапы проектирования. Перечень и содержание работ стадий и этапов. Организация процесса проектирования программного обеспечения. Методы проектирования: сверху-вниз, снизу-вверх. Схемы проектирования: каскадная, откатная, спиральная. Распределение работ между участниками проектов. Взаимодействие участников в процессе проектирования.

Постановка задачи проектирования

Постановка задачи на проектирование программного обеспечения. Понятие требования к программному обеспечению. Свойства требований. Сбор, формулировка, анализ, и документирование требований к программному обеспечению. Исследование и анализ предметной области. Техническое задание (ТЗ) на разработку программного обеспечения. Состав и содержание технического задания. Составление технических заданий.

Жизненный цикл программ

Понятие жизненного цикла. Модель жизненного цикла программы. Процессы жизненного цикла: основные (заказ, поставка, разработка, эксплуатация, сопровождение), вспомогательные (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместный анализ, аудит, решение проблем), организационные (управление проектом, создание инфраструктуры, совершенствование процессов, обучение). Состав и содержание работ каждого процесса.

Структуризация данных

Понятие данных. Свойства данных. Типизация. Виды типизации: явная, неявная, функциональная. Статическое и динамическое установление соответствия типов. Атомарные данные. Агрегативные данные. Структурированные данные. Абстрактные данные. Файлы, доступ к файлу, режим работы с файлом.

Декомпозиция и модульность программ

Понятие модуля. Виды модулей: программные, конфигурационные, функциональные, автономные. Модульная структура программного обеспечения. Связанность, сцепление, сложность модулей. Декомпозиция программного обеспечения на модули. Приёмы декомпозиции. Модульный принцип построения программного обеспечения. Рефакторинг программного кода.

Методологии проектирования программ

Понятие и виды программирования. Внутренняя структура и сегментация программ. Методологии программирования: процедурная, структурная, функциональная, логическая, объектно-ориентированная, визуальная, обобщенная. Понятие языка программирования. Классификация языков программирования. Уровни языка. Базовые составляющие языка программирования. Тенденции развития языков программирования.

Технологические средства проектирования

Понятие инструментальной среды программирования. Редакторы исходных текстов, трансляторы, сборщики, отладчики, библиотеки, средства управления проектами. Версионность, отслеживание версий модулей и продуктов. Обзор способов трансляции: компиляторы, интерпретаторы, конверторы, их преимущества и недостатки. Обзор процесса трансляции: лексический анализ, синтаксический анализ, генерация кода, оптимизация кода, диагностика ошибок.

Интерфейсы

Понятие интерфейса. Классификация интерфейсов. Формы представления: текстовые и графические. Способы организации: командные, диалоговые, оконные, языковые. Сценарии взаимодействия: жёсткие, свободные, иерархические, прямого манипулирования. Виды диалогов: директивный, фразовый, табличный. Этапы разработки интерфейса. Эргономические требования к организации интерфейсов.

Оценка качества

Основные понятия: качество, критерий, характеристика, показатель, оценка, метрика, уровень, ранжирование. Уровни представления о качестве программного продукта. Стадии оценки качества. Критерии и показатели качества. Оценка функциональности, надежности, практичности, эффективности, сопровождаемости, переносимости, тести-руемость, и т.д. Верификация показателей качества.

Испытание и анализ соответствия

Основные понятия: испытание, объект испытания, условия, модель, категория, объём, метод, методика, средство, образец, протокол. Классификация испытаний: по цели проведения, по масштабу проведения, по методам проведения, по степени автоматизации, по модульности, по степени подготовленности. Виды испытаний: технологические, функциональные, граничные, нагрузочные, конфигурационные, и т.д.

Тестирование и отладка

Понятие ошибки. Основные виды ошибок: синтаксические, алгоритмические, структурные, концептуальные. Понятия тестирования. Основные понятия: случай, контрольные данные, тест-план, протокол, покрытие. Концепции чёрного, серого, белого ящика при тестировании. Методы тестирования: индукции, дедукции, ручной, обратного прослеживания. Составление тестовых планов. Поиск ошибок в программном коде. Отладка.

Организация сопровождения

Понятие и содержание процесса сопровождения. Внедрение программного обеспечения и основные виды работ: инсталляция, настройка, верификация, приёмо-сдаточные испытания. Обучение персонала. Поддержка пользователей. Дефектоскопия в процессе эксплуатации. Классификация дефектов по степени важности, по частоте повторения, по влиянию на конечного пользователя. Регистрация недоработок. Аналитика функционирования. Методы сбора сведений о функционировании. Обновление и модернизация программного обеспечения. Контроль лицензий и прав использования. Снятие с эксплуатации.

Документирование и стандартизация

Документирование программного обеспечения. ЕСПД и её содержание. Основы составления руководства пользователя и руководства администратора. Разработка справочных систем в формате HTML/CHM. Оформление и комментирование программного кода. Подготовка презентаций на программное обеспечение.


Курсовая работа по дисциплине

Планом учебной дисциплины предусмотрена курсовая работа, которая заключаются в разработке программного комплекса, испытании и оценке его качественных показателей. Например:

Перечень работ включает:


Самостоятельная работа по дисциплине

Рабочей программой дисциплины предусмотрена самостоятельная работа, которая проводится с целью углубления знаний по дисциплине и предусматривает изучение следующих вопросов:

Планирование времени на самостоятельную работу осуществляется на весь семестр, предусматривая регулярное повторение пройденного материала. Формой контроля самостоятельной работой являются устные опросы, проводимые в течение периода обучения, и демонстрации индивидуальных заданий.


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

Учебно-методическое обеспечение дисциплины включает печатную и электронную литературу, интегрированные справочные системы, авторские методические материалы, Интернет публикации и форумы.

  1. Камаев, В.А. Технологии программирования. / В.В. Костерин, В.А. Камаев.- М.: «Высшая школа», 2006.- 454 с.
  2. Рогов, А.Ю. Технологии программирования: учебное пособие. / О.В. Проститенко, А.Ю. Рогов.- СПб.: СПбГТИ(ТУ), 2010.- 112 с.
  3. Рогов, А.Ю. Технологии программирования: методические указания к выполнению индивидуальных заданий. / А.Ю. Рогов.- СПб.: СПбГТИ(ТУ), 2010.- 60 с.
  4. Терехов, А. Н. Технологии программирования: учебное пособие. / А. Н. Терехов.- М.: Бином, 2007.- 152 с.
  5. Жоголев, Е.А. Технологии программирования. / Е.А. Жоголев.- М.: Научный Мир, 2004.- 216 с.
  6. Кулямин, В.В. Технологии программирования. Компонентный подход. / В.В. Кулямин.- М.: Бином, 2007.- 464 с.
  7. Давыдов, В.Г. Технологии программирования С++: учебное пособие. / В.Г. Давыдов.– СПб.: бхв-питер, 2005.- 672 с.

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

Классы 1, 4, 5, 6, 9 (кафедры системного анализа), Microsoft Windows 7, Internet Explorer, Microsoft Visual Studio 2010, Microsoft Word 2010, Microsoft Visio 2010, Microsoft PowerPoint 2010


Вернуться к списку дисциплин бакалавриата

Страничка разработчика УМК/РПД дисциплин