Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
26.04.2015
Размер:
571.9 Кб
Скачать

Конспект лекций

Дисциплина С3.Б.14«Технологии и методы программирования»

Направление подготовки 090900.62 «Информационная безопасность АС»

Профиль «Информационная безопасность автоматизированных систем на транспорте»

Уровень ООП бакалавр

Введение к курсу

В курсе программирование рассматривается, как методология формализации записи решения задач на языке непосредственно не определяемым исполнителем, но понимаемым им до степени реализации.

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

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

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

Касаясь неизбежного вопроса выбора среды реализации, выбор был сделан в пользу наиболее успешной языковой системы основанной на языке Си, его базе, расширениях и развитиях.

Не отвлекаясь на характеристики языков, понятия о которых раскрываются в следующем изложении, можно только отметить, что C, C++,Java,C# самые распространенные и популярные языки в мире.

Понятия и основные тезисы к разделу

Алгоритм– определение процесса перехода из допустимого исходного состояниях к требуемому конечному, при этом для процесса характерны свойства массовости, конечности, определенности, и ,как правило, детерминированности

Исполнитель– человек или вычислительное устройство (вычислитель) действующие по заданной формальной инструкции (алгоритму)

Программа – задание алгоритма в виде понятном исполнителю или в виде, который подлежит автоматическому преобразованию в вид понятный исполнителю

Язык – набор правил лексических (определяющих используемые знаки и слова), синтаксических (определяющих допустимые выражения) и семантических (определяющих реализуемые понятия)

Язык программирования – язык, на котором выполняется запись программы

Методология -набор целенаправленных и взаимообусловленных принципов, методов, средств и способов

Программирование – методология создания программы

1. Понятия технологии программирования

1.1. Термин технологии программирования

Термин «техноло́гия» означает знания о том, как суметь получить необходимый результат, достичь определенной цели. Технологический процесс подразумевает результат реализации этих знаний.

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

Основными признаками технологического процесса являются:

  • формализация;

  • предсказуемость;

  • повторяемость.

Среди множества критериев оценки качества технологического процесса упомянем:

  • доступность;

  • эффективность;

  • надежность;

  • сопровождение.

Технология программирования - дисциплина, изучающая процессы программирования и порядок их прохождения

В традиционном процессе программирования выделяются этапы:

  • проектированиепрограммы;

  • написание программы на выбранном языке программирования;

  • компиляция программы в вид воспринимаемый исполнителем;

  • отладка программы.

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

Ответы на вопрос: «Почему процесс программирования поэтапный и почему он имеет итеративный характер?» заключается в следующем:

  • до начала изложения проектных требований на выбранном языке программирования, необходимо переосмысливание (формализация) задачи в категориях связанных с нашим представлением о работе исполнителя;

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

  • исполнитель понимает только свой собственный (машинный) язык, который практически не пригоден для создания разработчиком больших проектов, что требует этапа компиляции.

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

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

  • архитектура вычислительного устройства, характеризующая его как исполнителя и определяющая принципы его функционирования и взаимодействия с окружающей средой;

  • выразительные средства и смысловые ограничения, определяемые выбранной средой программирования;

  • принципы формализации проектных решений.

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