Методы разработки структуры программы реферат

Обновлено: 17.05.2024

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

1. Метод восходящей разработки

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

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

Недостатки метода восходящей разработки заключаются в следующем:

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

спецификаций на верхнем уровне;

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

• головной модуль проектируется и реализуется в последнюю очередь, что не дает продемонстрировать его заказчику для уточнения спецификаций.)

2. Метод нисходящей разработки

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

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

3. Конструктивный подход


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

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

4. Архитектурный подход

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

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

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

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

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

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

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

Можно выделить следующие этапы:

- Постановка и анализ задачи, определение требований;

- Разработка, написание кода;

и оценка качества;

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

Результатом обычно является документ, называемый в нашей стране техническим заданием (ГОСТ 19.201-78) и содержащий сведения о назначении продукта, набор требований к нему и описание границ проекта.

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

Принято различать логическое и физическое проектирование.

Логическое проектирование не учитывает особенностей среды, в которой будет выполняться программа (технические и программные средства компьютера).

При выполнении физического проектирования все эти параметры должны быть учтены.

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

Определяется структура программы (программ) и разрабатывается алгоритм.

Под Алгоритмом понимается точная конечная система предписаний, определяющая содержание и порядок действий исполнителя над некоторыми объектами (исходными и промежуточными данными) для получения (после конечного числа шагов) искомого результата.

Любой алгоритм существует не сам по себе, а предназначен для определенного исполнителя. Алгоритм описывается в командах исполнителя, который этот алгоритм будет выполнять. Объекты, над которыми исполнитель может совершать действия, образуют так называемую среду исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм.

Дискретность. Выполнение алгоритма разбивается на последовательность законченных действий-шагов.

Детерминированность. Способ решения задачи однозначно определен в виде последовательности шагов.

Понятность. Алгоритм не должен содержать предписаний, смысл которых может восприниматься исполнителем неоднозначно

Результативность. Содержательная определенность результата каждого шага и алгоритма в целом.

Свойство результативности содержит в себе свойство конечности — завершение работы алгоритма за конечное число шагов.

Массовость. Алгоритм пригоден для решения любой задачи из некоторого класса задач.

Различают последовательности действий

- и циклической структуры.

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

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

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

Процессы вычислений циклической структуры в свою очередь можно разделить на три группы:

• циклические процессы, для которых количество повторений известно счетные циклы или циклы с заданным количеством повторений

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

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

- текстовая форма записи;

- запись в виде блок-схемы;

- запись алгоритма на каком-либо алгоритмическом языке;

- представление алгоритма в виде машины Тьюринга или машины Поста.

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

Блок-схема алгоритма(ГОСТ 19.701-90)

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

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

Ввод и вывод данных. Фрагмент программы, в котором пользователь вводит данные или программа выводит результаты на экран.

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

Структура принятия решения. Фрагмент программы, в котором принимается решение о направлении вычислительного процесса. В ромб всегда входит одна линия, а выходят две. Одна из выходящих линий отмечается словом "Да", а другая — "Нет".

Счетные циклы.

Предопределенный процесс. Эта фигура отображает группу операций, например вычисление факториала.

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

Линия. Соединяет две фигуры блок-схемы и показывает последовательность выполняемых программой операций.

Перечисленные структуры были положены в основу структурного программирования

Состоит из комбинации операторов языка высокого уровня и фраз на английском или русском языке. Стандартов на составление псевдокодов не существует.

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

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

С использованием данного метода разработку алгоритмов

На первом этапе описывают решение поставленной задачи, выделяя подзадачи и считая их решенными.

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

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

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

- Разработанные алгоритмы реализуют, составляя по ним текст программы с использованием конкретного языка программирования.

- На этапе собственно разработки создается код приложения в соответствии с техническим проектом.

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

Программа преобразующая программу, записанную на одном из языков высокого уровня, в программу на машинном языке - транслятор .

Трансляторы реализуются в виде компиляторов или интерпретаторов.

- Интерпретатор (англ. interpreter — истолкователь, устный переводчик ) переводит и выполняет программу строка за строкой.

- Компилятор (англ. compiler — составитель, собиратель ) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.

Запускаем компилятор.

После исправления ошибок процесс компиляции повторяют.

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

- После работы компоновщика получаем исполняемую программу

- На этом этапе основным инструментом, обязательным к применению, является средство разработки приложений, система программирования:

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

- компилятор или интерпретатор;

- средства создания и редактирования текстов программ;

- библиотеки стандартных программ и функций;

- отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;

- графические библиотеки; утилиты для работы с библиотеками;

- встроенная справочная служба и т.д.

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

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

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

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

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

- В простейшем случае файл справочной системы можно создать с помощью Microsoft Word и утилит от Microsoft для создания help-файлов, включаемых в состав многих средств разработки, но при большом объеме работы нередко используются специализированные средства таких компаний, как Blue Sky Software, EC Software, JGsoft.

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

- Для создания дистрибутивных приложения также применяются специализированные средства, лидерами рынка которых являются компании InstallShield Software и Wise Solutions.

- На этапе сопровождения продукта, как показывает практика, может понадобиться все, что было произведено при работе над проектом, и соответственно любой из инструментов.

Разработка алгоритмов и программ. Операциональный и структурный подход. Новые методологии разработки программ. Жизненный цикл программного обеспечения. Декларативный подход в разработке компьютерных программ. Процедурно-ориентированное программирование.

Рубрика Программирование, компьютеры и кибернетика
Вид доклад
Язык русский
Дата добавления 19.02.2014
Размер файла 19,0 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Доклад на тему

Выполнил студент 1курса

Введение

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

Принципы и методы разработки алгоритмов и программ

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

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

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

Безусловным называется переход, для которого изменение порядка выполнения команд определено раз и навсегда и не зависит ни от каких условий. Условным называется переход, для которого порядок выполнения команд определяется по некоторому условию, чаще всего условию сравнения числовых величин.

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

Операционный подход в программировании имеет недостатки:

· запутанная структура программы;

· непонятности, сложность в модификации, трудоемкость и высокая стоимость.

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

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

Цикл предусматривает повторное выполнение некоторого набора команд программы.

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

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

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

1. возможность создания программы несколькими программистами;

2. простота проектирования и последующей модификаций программы;

3. управляющие программы;

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

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

Новые методологии разработки программ

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

Само структурное программирование, наиболее отчетливо выраженное в языке Паскаль (Pascal), возникло в ходе развития процедурно-ориентированного подхода, заложенного в исторически первом из языков программирования -- Фортране (Fortran). Во всех языках этого направления разработчик алгоритма (он же, как правило, и программист) описывает, какими действиями следует реализовать процесс. В основе языков этой группы лежат понятия команд (операторов) и данных. Отдельные группы операторов могут объединяться во вспомогательные алгоритмы (процедуры, подпрограммы).

Декларативный подход в разработке компьютерных программ появился в начале 1970-х гг. Он не получил столь широкого применения как процедурный, поскольку был направлен на относительно узкий круг задач искусственного интеллекта. При его применении программист описывает свойства исходных данных, их взаимосвязи, свойства, которыми должен обладать результат, а не алгоритм получения результата. Разумеется, для получения результата этот алгоритм все равно нужен, но он должен порождаться автоматически той системой, которая поддерживает декларативно-ориентированный язык программирования. При логическом варианте такого подхода -- прежде всего это относится к языку Пролог (Prolog) -- задача описывается совокупностью фактов и правил в некотором формальном логическом языке, при функциональном варианте -- в виде функциональных соотношений между фактами, например язык Лисп (Lisp).

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

Методы разработки алгоритмов

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

1. Метод частных целей. Позволяет свести трудную задачу к последовательности более простых.

3. Программирование с отходом назад. Используется совместно с методом перебора, для избегания перебора всех возможных вариантов.

4. Алгоритмы ветвей и границ. Как и большая часть алгоритмов применяется для решения переборных задач. Они исследуют древовидную модель пространства решений и ориентированы на поиск в некотором смысле оптимального решения (из конечного множества возможных решений).

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

алгоритм программа компьютерный обеспечение

Жизненный цикл программного обеспечения включает в себя шесть этапов:

· Анализ требований. При разработке программного обеспечения он исключительно важен. Ошибки, допущенные на этом этапе, даже при условии безупречного выполнения последующих этапов могут привести к тому, что разработанный программный продукт не будет соответствовать требованиям практики, сферы его применения. Для создания конкурентоспособных продуктов в ходе выполнения этого этапа должны быть получены четкие ответы на следующие вопросы:

· Что должна делать программа?

· В чем состоят реальные проблемы, разрешению которых она должна способствовать?

· Что представляют собой входные данные?

· Какими должны быть выходные данные?

· Какими ресурсами располагает проектировщик?

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

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

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

Тестирование. На этом этапе производится всесторонняя проверка программ. Тестирование более подробно рассмотрено ниже.

Подобные документы

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

учебное пособие [346,8 K], добавлен 09.02.2009

Понятие и свойства алгоритмов: рекурсивного, сортировки и поиска. Простая программа и структурный подход к разработке алгоритмов. Язык блок-схем и проектирования программ (псевдокод). Рассмотрение принципов объектно-ориентированного программирования.

презентация [53,1 K], добавлен 13.10.2013

Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.

реферат [59,7 K], добавлен 19.08.2010

Рассмотрение основ разработки технического задания. Проектирования структуры программ; описание соответственного алгоритма. Собственно программирование. Тестирование и отладка компьютерных программ. Ознакомление с основными правилами защиты проекта.

реферат [157,4 K], добавлен 15.11.2014

Характеристика предприятия ТОО "Com Sales Group". Составление программ на языке программирования. Составление алгоритмов, разработка численных методов решения задач. Методы откладки программ. Анализ технологии машинной обработки экономической информации.

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

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

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

Алгоритмическим мышлением называется умение выстраивать логически безупречную последовательность действий для получения решения поставленной задачи. Многолетний опыт показывает, что для развития алгоритмического мышления в первую очередь требуется тщательно прорабатывать алгоритмы для небольших, но полезных программ, которые формируют базовые приемы программирования. Таких приемов достаточно немного, однако их обобщение, накопление, и умение осознанно применять при решении практических задач дает возможность научиться писать программы практически любому человеку [3].

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

Объект исследования данной работы – языки программирования.

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

Целью работы является классификация языков программирования.

Для достижения поставленной цели предстоит решить ряд задач:

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

1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ

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

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

Именно расширение области использования вычислительной техники и информационных технологий являетсяс основной движущей силой прогресса в сфере программирования. На протяжении всей истории развития информационных технологий проводилось огромное множество прикладных исследований по методологии проектирования, декомпозиции, абстрагированию и иерархиям. Результатом данных исследований стало создание новых, более выразительных языков программирования [7].

Таким образом, программированием (computer programming) называется процесс создания человеком-программистом информационной структуры - программы, целью которой является исполнение на компьютере.

В большинстве случаев в программировании важным является не только факт исполнения программы компьютером, но и факт использования полученного результата человеком. Однако, бываете и ряд исключений, примером которого является программа первоначальной загрузки операционной системы [12].

Таким образом, в процессе программирования выделяются следующие элементы:

  • цель – выполнение программы, которое приводит к решению поставленной задачи или публикация ее текста;
  • субъект – человек, осознанно ведущий процесс программирования, или другая программа (в случае автоматического синтеза программы, при этом процесс не является осознанным, а программа может быть выражена на языке нейрокомпьютера или не иметь материального носителя);
  • объект – текст, записанный на формальном языке [10].

Сегодня результативность и эффективность программирования в целом оставляет желать лучшего. Несмотря на массовое распространение компьютеров и быстрый рост характеристик их программного и аппаратного обеспечения, весьма значительной остается доля неудачных проектов, целью которых является разработка программного обеспечения. Наряду с эффектными достижениями имеются и сравнительно многочисленные досадные неудачи. К сожалению, до сих пор слишком часто приходится делать вывод, что программирование рискованно, программы ненадежны, а программисты неуправляемы [6].

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

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

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

Соотношение информатики и технологии программирования является сложным вопросом. Информатика представляет собой более общее понятие, однако нельзя считать технологию программирования отдельной частью информатики. В настоящее время вопросы теоретического характера относят к информатике, а практические приемы решения задач считаются элементами технологии программирования. Например, методы математического доказательства правильности программ относятся к теоретической информатике, а методы тестирования – к технологии программирования, хотя это совершенно разные методы решения одной задачи. Важно отметить, что такое отделение технологии программирования от информатики является условным [8].

1.1. Первое поколение

Первые языки программирования были очень сложны. Схема их развития отражена в таблице 1.

Читайте также: