Понятие программирования. Типы языков программирования
Термин программирование означает процесс и искусство создания компьютерных программ с помощью специальных языков программирования.
В общем смысле слова, программирование есть формализация предопределенного состояния, по реакции на событие, реализуемого средствами математики или естественных наук.
В узком смысле слова, программирование рассматривается как кодирование алгоритмов на заданном языке программирования. В более широком смысле программирование — процесс создания программ, то есть разработка программного обеспечения.
Программирование включает в себя:
· Проектирование — разработка комплекса алгоритмов
· Кодирование и компиляцию — написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора
· Тестирование и отладку — выявление и устранение ошибок в программах
· Испытания и сдачу программ
Различные языки программирования поддерживают различные стили программирования (так называемые«парадигмы программирования»). Отчасти, искусство программирования состоит в том, чтобы выбрать один из языков, наиболее полно подходящий для решения имеющейся задачи. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между временем программиста и временем пользователя).
Как работает программа? Как компилируется код? (устройство компьютерных программ) [2020]
Единственный язык, напрямую выполняемый процессором — это машинный язык (также называемый «машинным кодом»). Как уже было сказано, изначально, все программисты прорабатывали каждую мелочь в машинном коде, но сейчас эта трудная работа уже не делается. Вместо этого, программисты пишут исходный код, и компьютер (используя компилятор, интерпретатор или ассемблер, речь о которых пойдёт чуть позже) транслирует его, в один или несколько этапов, уточняя все детали, в машинный код, готовый к исполнению на целевом процессоре. Однако, в некоторых языках, вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом (byte-code). Такой подход применяется в Forth, Lisp, Java (данному языку посвящена 3 Глава реферата).
Теперь, когда мы знаем немного о понятии «программирование», можно переходить к материальной части процесса создания программ. Это, разумеется, технические (аппаратные) средства обеспечения программирования — совокупность электрических, электронных и механических компонентов автоматизированных систем составляет их техническое обеспечение (в отличие от программных средств, представляющих собой программное обеспечение автоматизированных систем). Например, электронная вычислительная машина (ЭВМ) или компьютер — комплекс технических и программных средств, основанных на использовании электроники и предназначенных для автоматической или автоматизированной обработки данных в процессе решения вычислительных и информационных задач.
Понятие языка программирования
5. Какие бывают компьютерные программы?
Процесс работы компьютера заключается в выполнении программы, то есть набора вполне определённых команд во вполне определённом порядке. Машинный вид команды, состоящий из нулей и единиц, указывает, какое именно действие должен выполнить центральный процессор.
Значит, чтобы задать компьютеру последовательность действий, которые он должен выполнить, нужно задать последовательность двоичных кодов соответствующих команд. Программы в машинных кодах состоят из тысячи команд. Писать такие программы — занятие сложное и утомительное.
Программист должен помнить комбинацию нулей и единиц двоичного кода каждой программы, а также двоичные коды адресов данных, используемых при её выполнении. Гораздо проще написать программу на каком-нибудь языке, более близком к естественному человеческому языку, а работу по переводу этой программы в машинные коды поручить компьютеру. Так возникли языки, предназначенные специально для написания программ, — языки программирования.
Язык программирования — это специальный язык, на котором пишут команды для управления компьютером. Языки программирования созданы для того, чтобы людям было проще читать и писать для компьютера, но они затем должны транслироваться (транслятором или интерпретатором) в машинный код, который только и может исполняться компьютером. Языки программирования можно разделить на языки высокого уровня и языки низкого уровня.
Язык низкого уровня — это язык программирования, предназначенный для определенного типа компьютера и отражающий его внутренний машинный код; языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, поскольку для этого требуется хорошо знать принципы внутренней работы компьютера.
Язык высокого уровня — это язык программирования, предназначенный для удовлетворения требований программиста; он не зависит от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения проблем и поэтому их часто называют проблемно-ориентированными языками. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах.
Создатели языков по-разному толкуют понятие язык программирования. Среди общин мест, признаваемых большинством разработчиков, находятся следующие:
Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются лишь для общения людей между собой. В принципе, можно обобщить определение «языков программирования» — это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.
Со времени создания первых программируемых машин человечество придумало уже более двух с половиной тысяч языков программирования. Каждый год их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
Но создать язык, удобный для написания программ, недостаточно. Для каждого языка нужен свой переводчик. Такими переводчиками являются специальные программы-трансляторы.
Транслятор- это программа, предназначенная для перевода программы, написанной на одном языке программирования, в программу на другом языке программирования. Процесс перевода называется трансляцией. Тексты исходной и результирующей программ находятся в памяти компьютера.Примером транслятора является компилятор.
Компилятор- это программа, предназначенная для перевода программы, написанной на каком-либо языке, в программу в машинных кодах. Процесс такого перевода называется компиляцией.
Компилятор создаёт законченный результат — программу в машинных кодах. Затем эта программа выполняется. Откомпилированный вариант исходной программы можно сохранить на диске. Для повторного выполнения исходной программы компилятор уже не нужен. Достаточно загрузить с диска в память компьютера откомпилированный в предыдущий раз вариант и выполнить его.
Существует другой способ сочетания процессов трансляции и выполнения программы. Он называется интерпретацией. Суть процесса интерпретации состоит в следующем. Вначале переводится в машинные коды, а затем выполняется первая строка программы. Когда выполнение первой строки окончено, начинается перевод второй строки, которая затем выполняется и так далее.
Управляет этим процессом программа-интерпретатор.
Интерпретатор- это программа, предназначенная для построчных трансляции и выполнения исходной программы. Такой процесс называется интерпретацией.
В процесс трансляции входит проверка исходной программы на соответствие правилам используемого в ней языка. Если в программе обнаружены ошибки, транслятор вводит сообщение о них на устройство вывода (обычно, на экран дисплея).Интерпретатор сообщает о найденных им ошибках после трансляции каждой строки программы.
Это значительно облегчает процесс поиска и исправления ошибок в программе, однако существенно увеличивает время трансляции. Компилятор транслирует программу намного быстрее, чем интерпретатор, но сообщает о найденных им ошибках после завершения компиляции всей программы. Найти и исправить ошибки в этом случае труднее. Поэтому интерпретаторы рассчитаны, в основном, на языки, предназначенные для обучения программированию, и используются начинающими программистами. Большинство современных языков предназначены для разработки сложных пакетов программ и рассчитаны на компиляцию.
Иногда один и тот же язык может использовать и компилятор, и интерпретатор. К числу таких языков относится, например, Бейсик.
Классификация языков программирования
Если вы успели заметить, в тексте уже прозвучали несколько отдельных названий языков программирования. Но перед тем как более подробно их описать, необходимо классифицировать их по группам для удобства восприятия.
Во-первых это машинно-ориентированные языки, т.е. языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные языки позволяют использовать все возможности и особенности Машинно-зависимых языков:
· высокое качество создаваемых программ (компактность и скорость выполнения);
· возможность использования конкретных аппаратных ресурсов;
· предсказуемость объектного кода и заказов памяти;
· для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
· трудоемкость процесса составления программ ( особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
· низкая скорость программирования;
· невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.
Как я уже упоминал, отдельный компьютер имеет свой определенный Машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.
В новых модулях ЭВМ намечается тенденция к повышению внутренних языков машинно — аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования.
Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд — они называются Автокоды.
В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту.
Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму — называется Макрос (средство замены).
В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макроопределяющий и исходный текст. Реакция макропроцессора на вызов- выдача выходного текста.
Следующий вид языков — машинно-независимые языки. Это средства описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС.
Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка(задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ.
Таким образом, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно — ориентированные языки. Эти языки, ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме.
Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы.
Предусмотрена возможность параллельного выполнения участков программ.Появление новых технических возможностей поставило задачу перед системными программистами — создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.Эти работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач.Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены, прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения.Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
Источник: studopedia.ru
Процесс разработки ПО
Разработка программного обеспечения проводится с помощью определенной методологии. Выбор зависит от того, какой бюджет у проекта, и насколько специфичен продукт, который планируется разработать.
Каждая из этих методологий подразумевает прохождение этапов, каждый из которых включает определенные действия и требования к ним.
Каскадный метод (Waterfall Model)
Типичный набор последовательностей, с помощью которого легко управлять проектом. Подходит только для тех продуктов, способы реализации и требования к которым определены заранее.
Делится на следующие этапы:
- Подготовка. Сбор требований к программному обеспечению и их обработка. Планирование необходимых ресурсов, сроков, расчет стоимости.
- Проектирование. Разработка технического задания и отправка готового документа исполнителю. Создание спецификаций.
- Создание. Оформление индивидуального дизайна, написание кода, тестирование программного обеспечения.
- Сопровождение. Установка и внедрение продукта, обучение и поддержка пользователей.
Гибкий метод (Agile)
Разработка программного обеспечения с помощью Agile подразумевает разделение на несколько этапов (спринтов), каждый из которых должен быть выполнен полностью и проанализирован. Исходя из этих данных, планируются следующие этапы разработки.
Каждый спринт состоит из следующих шагов:
- Планирование. Определение целей, распределение имеющихся ресурсов.
- Разработка. Решение задач спринта.
- Тестирование. Проверка работоспособности, анализ и исправление ошибок.
- Демонстрация. Ознакомление заказчика с готовым этапом.
- Внедрение. Использование программного обеспечения.
Гибкий метод подходит для крупных проектов, требования к которым могут меняться в процессе разработки.
V-Model
Работает аналогично каскадному методу, для систем, которые должны функционировать в бесперебойном режиме.
Особенность данной модели в том, что тестирование продукта производится на каждом этапе, одновременно с процессом разработки.
Подходит для небольших и средних проектов с фиксированными требованиями, и только в том случае, если есть возможность постоянного тестирования продукта.
Incremental Model (инкрементная модель)
Разработка делится на несколько циклов, разделенных на модули, каждый из которых проходит свой собственный процесс проектирования, создания, тестирования и внедрения.
Сначала создается программное обеспечение с базовыми функциями, а затем добавляются новые инкременты. Процесс разработки длится до создания продукта с полным набором функций, соответствующим начальному техническому заданию.
Подходит для проектов, которые необходимо срочно запускать на рынок.
RAD Model (быстрая разработка приложений)
Разновидность инкрементной модели, но компоненты разрабатываются несколькими командами одновременно. Созданные части интегрируются в один прототип.
Подходит для проектов с большим бюджетом.
Iterative Model (итеративная модель)
Для разработки программного обеспечения по данному методу не требуется начальная спецификация. Создание продукта начинается с разработки версии с базовым набором функций, расширяющихся в процессе. Подходит для больших проектов, детали которых могут со временем меняться.
Spiral Model (спиральная модель)
Работает аналогично инкрементной модели, но каждый этап делится на планирование, анализ рисков, создание и оценку результата.
Итак, можно сделать вывод, что процесс разработки программного обеспечения чаще всего многоэтапный и сложный, какие-то этапы проходят параллельно либо просто совмещаются. Все индивидуально и зависит от специфики продукта, который планируется разработать.
Услуги
Разработка программного обеспечения
Комплекс услуг по разработке, внедрению и сопровождению программного обеспечения. Реализация ИТ-проектов разного масштаба и сложности.
Методология
Разработка с оценкой задач
Разработка, развитие или поддержка с оценкой трудозатрат, сроков и бюджетов по каждой задаче (частные технические задания) или по всему проекту по единому техническому заданию.
Безлимитное абонентское обслуживание
Безлимитное абонентское обслуживание — гибкая методология разработки на основе Extreme Programming, но с удобным безлимитным абонентским подходом. Абонентская плата включает все услуги: внедрение, создание, развитие, подде ржку, продвижение.
Источник: cetera.ru
Как создаются компьютерные программы?
Компьютерные программы создаются программистами при помощи так называемых систем программирования. Каждая из таких систем программирования состоят из 2-х частей:
1. языка программирования – набора формальных правил, который предназначен для описания процесса обработки информации на некотором виртуальном (условном, гипотетическом, и т.д.) компьютере, и
2. интегрированной среды разработки (IDE – Integrated Development Environment, среда программирования, транслятор) – набора программ, предназначенных для перевода (трансляции) команд языка программирования в машинные команды вполне конкретного процессора.
Таким образом, язык программирования – это средством, с помощью которого программирование ведется на некоторую идеализированную (гипотетическую, виртуальную) вычислительную машину, спроектированную, невзирая на ограничения современных компьютеров, но, учитывая традиционные способы и умения человека выражать свои мысли. В результате, в такой ситуации появляется две машины:
1. реальная машина, создание которой экономически оправдано, но которая не удобна в использовании, и
2. виртуальная машина, которая вполне согласуется с человеческими нуждами, но «существует только на бумаге».
Роль моста через пропасть, которая разделяет эти два компьютера, играют трансляторы. Транслятор – это программа для реальной машины, которая дает ей возможность переводить (транслировать) программы, написанные для виртуальной машины, в её собственные программы. Она позволяет реальной машине выступать в роли виртуальной, идеализированной машины. Применение транслятора, таким образом, освобождает программиста от необходимости рассматривать частные характеристики реального компьютера. Но транслятор не освобождает его от обязанности постоянно учитывать тот факт, что в конечном итоге именно реальная машина будет выполнять его программу, и что она имеет определенные ограничения.
Любой язык программирования состоит из 2-х типов инструкций (операторов, команд, предложений и т.д.), которые служат для описания:
1. данных, участвующих в процессе обработки, и
2. алгоритмом – наборов формальных правил, в соответствии с которыми эти данные обрабатываются.
Схематически процесс создания компьютерных программ можно представить следующим образом:
Он ничем принципиально не отличается от процесса приготовления пищи. То есть, для того, чтобы приготовить пищу (например, украинский борщ) необходимо иметь:
1. продукты – или исходные данные, применительно к компьютерным программам,
2. рецепт приготовления блюда – алгоритм обработки данных, и
3. кухонный инвентарь (кастрюли, ножи, кухонный комбайн и т.д.) – т.е. интегрированную среду разработки (транслятор).
Процесс трансляции (перевода) программы с языка программирования в машинные команды совершенно аналогичен процессу перевода с одного естественного языка на другой. При этом существует два вида переводов:
При синхронном переводе переводчик немедленно переводит каждую фразу, как только её услышит. При литературном переводе он может несколько раз прочитать исходный документ, внимательно его изучить, воспользоваться необходимыми словарями, и лишь затем – подготовить выходной документ на другом языке. Понятно, что качество литературного перевода заметно выше качества синхронного перевода, но им не всегда можно воспользоваться. Так, например, во время международных переговоров или во время демонстрации недублированных фильмов используется синхронный перевод, хотя с литературной точки зрения он не всегда является качественным.
Трансляция (перевод) компьютерных программ с языка программирования в машинные команды также выполняется двумя различными способами. Это:
1. компиляция – аналог литературного перевода, и
2. интерпретация – аналог синхронного перевода.
Программа-компилятор работает также как и литературный переводчик. Сначала она несколько раз внимательно просматривает исходный текст программы, потом обращается к необходимым справочникам (которые в программировании называются библиотеками) и лишь затем, выдаёт готовую программу в машинных кодах конкретного компьютера – так называемый загрузочный (выполняемый, исполняемый или рабочий) модуль. Созданная таким образом программа (файл с расширением .EXE) вдальнейшем может независимо и параллельно с другими программами существовать на компьютере.
Работа программы-интерпретатора похожа на работу синхронного переводчика. Он читает исходный текст программы инструкция за инструкцией, переводит их в машинные команды и тут же передаёт процессору на выполнение. Исполнив таким образом одну инструкцию программы, он переходит к другой, и так далее. То есть, программа, написанная программистом, на компьютере выполняется под управлением интерпретатора.
Каждый из этих способов трансляции имеет как свои достоинства, так и вполне определённые недостатка:
1. Интерпретируемые программы выполняются в сотни раз медленнее, чем откомпилированные – это расплата за посредничество «синхронного переводчика», в роли которого выступает интерпретатор. Однажды же откомпилированная программа в дальнейшем не требует присутствия программы-компилятора, и компьютеру больше не нужно «исхитряться», чтобы одновременно и транслировать, и выполнять программу.
2. Внесение изменений в интерпретируемые программы выполняется гораздо проще и быстрее, чем в компилируемые, поскольку не требует их повторной перекомпиляции. Интерпретируемые программы после внесения в них изменений можно сразу запускать на выполнение.
3. При выполнении программы под управлением интерпретатора имеется возможность контролировать абсолютно все осуществляемые действия, что повышает устойчивость и надёжность работы не только конкретной программы, но и всей вычислительной системы в целом. Так при определённых условиях (а не вообще) программа-интерпретатор может либо запретить, либо, наоборот, разрешить выполнение конкретной программой вполне определённых действий – например, проверить право использования некоторого ресурса.
Похожие материалы
- Получение справочной информации
- Работа с графикой. Создание рисованных графических объектов
- Средства автоматизации подготовки текста
Источник: vunivere.ru
Введение в программирование
• навыками постановки задачи программирования и алгоритмизации ее решения.
Программирование и программотехника
Процесс создания программ
Программа – это логически упорядоченная, строго регламентированная последовательность команд (инструкций) для управления компьютером. Программы создаются для решения конкретных задач. Процесс создания программ включает три основных этапа: постановку задачи, алгоритмизацию решения задачи и непосредственно программирование.
Различают два класса задач:
- • функциональные, которые ставятся пользователем и решаются для удовлетворения нужд предметных (прикладных) областей, например управление работой предприятия, планированием выпуска продукции;
- • технологические, которые ставятся и решаются при организации технологического процесса обработки данных и служат основой для разработки сервисных средств программного обеспечения (в виде утилит, библиотек процедур и др.), применяемых для обеспечения работоспособности компьютера, разработки других программ или обработки данных функциональных задач.
Постановка задачи – точная формулировка задачи для решения на компьютере с описанием входной и выходной информации. Входной информацией могут служить данные документов ручного заполнения; нормативно-справочная информация или результаты решения других задач, хранимые в базе данных; электрические сигналы, поступающие с датчиков, и другие данные. Выходная информация может быть представлена в виде документа (типа листинга), видеограммы на экране монитора, электрического сигнала для управления конкретным устройством. При постановке функциональной задачи формулируются ее цель, место и связи с другими задачами; уточняются условия решения задачи с использованием средств вычислительной техники; определяются функции обработки входной информации и др.
Алгоритмизация решения задачи состоит в построении алгоритма, представляющего собой систему точно сформулированных правил получения требуемого результата (выходной информации) с помощью входных данных. Основными свойствами алгоритма являются:
- • дискретность – пошаговое решение задачи;
- • определенность – однозначность реализации каждого шага;
- • выполнимость – получение результата за конечное число шагов;
- • массовость – пригодность алгоритма для решения определенного класса задач.
В алгоритме с помощью расчетных формул, логических условий, контроля над достоверностью результатов и других средств отражаются логика и способ решения задачи.
Программирование – теоретическая и практическая деятельность, связанная с непосредственным созданием программ.
Основную работу по созданию программ выполняют программисты, которые делятся на системных и прикладных, при этом:
- • системный программист занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, которое координирует всю работу компьютера. Его основной задачей является создание операционной среды выполнения прикладных программ;
- • прикладной программист занимается разработкой, отладкой и эксплуатацией программ, предназначенных для решения функциональных задач (алгоритмизация решения задачи, непосредственное программирование).
При разработке информационных систем, использующих интегрированные базы данных, для создания информационной среды выполнения программ привлекается администратор базы данных. На начальной стадии создания программ (постановка и алгоритмизация решения задачи, создание информационной среды выполнения программы) в работе принимает участие специалист предметной области – постановщик программ. Поскольку основным потребителем программ является конечный пользователь, при постановке задачи учитываются квалификационные характеристики пользователей.
Технология разработки, отладки, верификации и внедрения программного обеспечения называется программотехникой. Ее бурное развитие обусловлено переходом на промышленную технологию производства программ, стремлением к сокращению сроков, трудовых и материальных затрат на их производство и эксплуатацию программ, обеспечением гарантированного уровня качества. Выделяют два основных вида средств программотехники (рис. 11.1): средства для создания приложений и средства для создания информационных систем [2, 17].
Источник: studme.org