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

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

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

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

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

Процедурно-ориентированные и проблемно-ориентированные языки относятся к языкам высокого уровня, использующим макрокоманды. Макрокоманда при трансляции генерирует много машинных команд (для процедурноориентированного языка это соотношение в среднем "1 к десяткам машинных команд", а для проблемно-ориентированного – "1 к сотням машинных команд". Процедурноориентированные языки программирования являются самыми используемыми (Basic, Visual Basic, Pascal, Borland Delphi, С и др.). В этом случае программист должен описывать всю процедуру решения задачи, тогда как проблемно-ориентированные языки (их называют также непроцедурными) позволяют лишь формально идентифицировать проблему и указать состав, структуры представления и форматы входной и выходной информации для задачи.

При выполнении инструкций программ компьютеру необходимо преобразовать удобные для человеческого восприятия операторы, написанные на каком-либо языке программирования, в форму, попятную для компьютера. Инструментальное программное обеспечение имеет специальные программы, транслирующие (translate) текст программ, написанных на различных языках программирования, в машинные коды, которые затем выполняются компьютером. Этот вид программного обеспечения называется компилятором или интерпретатором. Текст программы, написанной на языке программирования высокого уровня, до того как быть преобразованным в машинные коды, называется исходным кодом (source code). Компилятор (compiler) преобразует исходный код в машинные коды, называемые объектным кодом (object code) – программой на выходном языке транслятора. Перед выполнением происходит процесс редактирования связей (linkage editing), заключающийся в том, что модули выходной программы объединяются с другими модулями объектного кода, содержащими, например, данные. Результирующий загрузочный модуль – это команды, непосредственно выполняемые компьютером. Некоторые языки программирования содержат не компилятор, а интерпретатор (interpreter), который преобразует каждое отдельное выражение исходного кода в машинные коды и сразу выполняет их. Интерпретатор удобен на этапе отладки программы, так как обеспечивает быструю обратную связь при обнаружении ошибки в исходном коде. Основы программирования на языке высокого уровня Visual Basic изложены в гл. 12 настоящего учебника.

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

Основные функции таких СУБД:

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

Теоретические основы СУБД описаны выше (параграф 3.2), а практическое применение описано в гл. 10.

Инструментальное ПО или системы программирования - это системы для автоматизации разработки новых программ на языке программирования. В самом общем случае для создания программы на выбранном языке программирования (языке системного программирования) нужно иметь следующие компоненты: 1. Текстовый редактор для создания файла с исходным текстом программы. 2. Компилятор или интерпретатор. Исходный текст с помощью программы-компилятора переводится в промежуточный объектный код. Исходный текст большой программы состоит из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным кодом, которые затем надо объединить в одно целое. 3. Редактор связей или сборщик, который выполняет связывание объектных модулей и формирует на выходе работоспособное приложение – исполнимый код. Исполнимый код – это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение.ЕХЕ или.СОМ. 4. В последнее время получили распространение визуальный методы программирования (с помощью языков описания сценариев), ориентированные на создание Windows-приложений. Этот процесс автоматизирован в средах быстрого проектирования. При этом используются готовые визуальные компоненты, которые настраиваются с помощью специальных редакторов. Наиболее популярные редакторы (системы программирования программ с использованием визуальных средств) визуального проектирования:

 Borland Delphi - предназначен для решения практически любых задачи прикладного программирования

 Borland C++ Builder – это отличное средство для разработки DOS и Windows приложений

 Microsoft Visual Basic – это популярный инструмент для создания Windows-программ

 Microsoft Visual C++ - это средство позволяет разрабатывать любые приложения, выполняющиеся в среде ОС типа Microsoft Windows

1.3.2. Файловые системы

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

 Функции для работы с файлами (создание, удаление, переименование файлов и т.д.)

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

Известно, что файлы используются для организации и хранения данных на машинных носителях. Файл – это последовательность произвольного числа байтов, обладающая уникальным собственным именем или поименованная область на машинных носителях. Структурирование множества файлов на машинных носителях осуществляется с помощью каталогов, в которых хранятся атрибуты (параметры и реквизиты) файлов. Каталог может включать множество подкаталогов, в результате чего на дисках образуются разветвленные файловые структуры.Организация файлов в виде древовидной структуры называется файловой системой. Принцип организации файловой системы – табличный. Данные о том, в каком месте на диске записан файл, хранится в таблице размещения файлов (File Allocation Table, FAT). Эта таблица размещается в начале тома. В целях защиты тома на нем хранятся две копии FAT. В случае повреждения первой копии FAT дисковые утилиты могут воспользоваться второй копией для восстановления тома. По принципу построения FAT похожа на оглавление книги, так как операционная система использует ее для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Наименьшей физической единицей хранения данных является сектор. Размер сектора 512 байт. Поскольку размер FAT – таблицы ограничен, то для дисков, размер которых превышает 32 Мбайт, обеспечить адресацию к каждому отдельному сектору не представляется возможным. В связи с этим группы секторов условно объединяются в кластеры. Кластер является наименьшей единицей адресации к данным. Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска.

Сначала для дискет и небольших жестких дисков (менее 16 Мбайт) использовалась 12-разрядная версия FAT (так называемая FAT12). Затем в MS-DOS была введена 16-разрядная версия FAT для более крупных дисков. Операционные системы MS DOS, Win 95, Win NT реализуют 16 – разрядные поля в таблицах размещения файлов. Файловая система FAT32 была введена в Windows 95 OSR2 и поддерживается в Windows 98 и Windows 2000. FAT32 представляет собой усовершенствованную версию FAT, предназначенную для использования на томах, объем которых превышает 2 Гбайт. FAT32 обеспечивает поддержку дисков размером до 2 Тбайт и более эффективное расходование дискового пространства. FAT32 использует более мелкие кластеры, что позволяет повысить эффективность использования дискового пространства. В Windows XP применяется FAT32 и NTFS. Более перспективным направлением в развитии файловых систем стал переход к NTFS (New Technology File System – файловая система новой технологии)с длинными именами файлов и надежной системой безопасности. Объем раздела NTFS не ограничен. В NTFS минимизируется объем дискового пространства, теряемый вследствие записи небольших файлов в крупные кластеры. Кроме того, NTFS позволяет экономить место на диске, сжимая сам диск, отдельные папки и файлы.

По способам именования файлов различают “короткое” и “длинное” имя. Согласно соглашению, принятому в MS-DOS, способом именования файлов на компьютерах IBM PC было соглашение 8.3., т.е. имя файла состоит из двух частей: собственно имени и расширения имени. На имя файла отводится 8 символов, а на его расширение – 3 символа. Имя от расширения отделяется точкой. Как имя, так и расширение могут включать только алфавитно-цифровые символы латинского алфавита. Имена файлов, записанные в соответствии с соглашением 8.3, считаются “короткими”. С появлением операционной системы Windows 95 было введено понятие “длинного” имени. Такое имя может содержать до 256 символов. Этого вполне достаточно для создания содержательных имен файлов. “Длинное” имя может содержать любые символы, кроме девяти специальных: \ / : * ? “ < > |. В имени разрешается использовать пробелы и несколько точек. Имя файла заканчивается расширением, состоящим из трех символов. Расширение используется для классификации файлов по типу. Уникальность имени файла обеспечивается тем, что полным именем файла считается собственное имя файла вместе с путем доступа к нему. Путь доступа к файлу начинается с имени устройства и включает все имена каталогов (папок), через которые проходит. В качестве разделителя используется символ “\” (обратный слеш - обратная косая черта).Например: D:\Documents and Settings\ТВА\Мои документы\lessons-tva\ robots.txt Несмотря на то, что данные о местоположении файлов хранятся в табличной структуре, пользователю они представляются в виде иерархической структуры – людям так удобнее, а все необходимые преобразования берет на себя операционная система. К функции обслуживания файловой структуры относятся следующие операции, происходящие под управлением операционной системы:

 создание файлов и присвоение им имен;

 создание каталогов (папок) и присвоение им имен;

 переименование файлов и каталогов (папок);

 копирование и перемещение файлов между дисками компьютера и между катало­гами (папками) одного диска;

 удаление файлов и каталогов (папок);

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

 управление атрибутами файлов.

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

Пример. Рассмотрим инструментальную среду – графический редактор, который позволяет визуализировать графические объекты двумя основными способами: векторно или растрово. Векторный подход динамически постепенно формирует на экране (который рассматривается как некоторое координатное пространство) объект по его представлению, составленному из графических примитивов. Растровый подход формирует на экране весь объект целиком на основе его макета (шаблона, графических примитивов в видеопамяти), состоящего из отдельных кластеров пикселей в некоторой пиксельной двухмерной матрице (аналоге листа для рисования с декартовой системой координат). В этой матрице записывается информация о яркости и цвете кластера изображения (на один пиксель иногда 1-2 байта и более), а сама матрица может иметь размерность 1024x1024 пикселей и более. Сформированное в пиксельной матрице изображение хранится в видеопамяти дисплея и выводится на экран в режиме кадровой регенерации. Изображение в цвете (рисование в цвете) – это манипуляция пикселями этой матрицы. Графические 3D-редакторы изображений позволяют не только конструировать 3D-объекты, но и перемещать их по задаваемой траектории, то есть осуществлять анимацию. Одной из мощных графических сред является пакет 3D-Studio Max фирмы Autodesk. Кроме этого пакета, широко используются графические пакеты:

GRAFLotus Freelance – для работы с деловой и компьютерной графикой;

Splash и Fanta – для работы в области дизайна и компьютерных фильмов;

AutoCAD – для автоматизации проектно-конструкторских работ;

CorelDraw, PaintBrush, AdobeIllustrator – для разнообразных приложений.

Трансляторы подробно рассматриваются нами ниже.

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

Пример. Наиболее ранняя интерфейсная система – Norton Commander (Нортон Коммандер, автор – Питер Нортон). Системы, подобные Norton Commander (NC), называются операционными оболочками и их можно отнести к инструментальным средам (инструментарий более удобного, комфортного интерфейса с ОС, с файловой системой, минуя утомительный командный язык ОС). Такая система позволяет визуально и удобно выполнять копирование, создание, удаление, переименование, перемещение, просмотр и поиск файлов и т.д. NC использует управляющие и функциональные клавиши, которым соответствуют определенные операции и отклики системы:

Esc – отмена выполняемой функции;

Enter – выполнение функции;

Тab – смена текущей (активной) панели на другую (ранее пассивную);

PgUp (PgDn) – переход на страницу вперед (назад);

Home (End) – установка на начало (конец) каталога;

, , , – клавиши перемещения курсора влево, вверх, вправо, вниз;

Ctrl-S (одновременное нажатие клавиш Ctrl и S) - на символ влево;

Ctr-D (Ctr-A,Сtrl-F) – на символ вправо (на слово влево, на слово вправо);

F1 – клавиша помощи, подсказки по активному состоянию (клавиша help);

F2 – запись на диск активного файла;

F3 – просмотр содержимого активного файла;

F4 – редактирование активного файла;

F5 – копирование активного файла в активный каталог на другой панели;

F6 – переименование (перенос) активного файла;

F7 – создание нового каталога (подкаталога);

F8 – удаление активного файла;

F9 – активизация команд панели (системного меню) NC;

F10 – выход из NC.

Более развитым отечественным аналогом NC для Windows-систем является, например, оболочка FAR-менеджер.

Проблемно-ориентированные инструментальные системы служат для решения достаточно широкого класса задач некоторой профессиональной, проблемной ориентации: САПР – системы автоматизации проектирования, АСУ – автоматизированные системы управления, АРМ – автоматизированные рабочие места, СУБД – система, обеспечивающая интерфейс программ пользователя и данных из базы данных, ЭС – экспертные системы, системы накопления, хранения и актуализации опыта, знаний, умений, навыков (экспертных суждений) экспертов и др.

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

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

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

описание, представление класса задач, решаемых с помощью ППП;

комплекс программ, обеспечивающих построение прикладных программ ППП (технологической цепочки);

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

входной язык (язык запросов) ППП;

база данных для хранения данных, передача их модулям ППП;

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

Пример. Простым и универсальным студенческим пакетом статистического анализа данных является пакет SPSS. Интерфейс пользователя с SPSS для Windows реализуется с помощью простых меню и диалоговых окон, то есть SPSS свободна от использования специально изучаемого командного языка пакета. Имеется редактор Data Editor для визуального контроля вводимых данных, функционально аналогичный редакторам табличных процессоров, например, Excel. По столбцам отображаются варьируемые переменные, а по строкам – наборы их вариации, причем с каждой из переменных можно ознакомиться путем вызова ее имени. Ввод данных – аналогичен вводу данных табличного типа (например, в Excel). В диалоговых окнах можно определять (вводить или вычислять) сложные выражения, используемые далее в расчетах. Есть возможность применения различных законов случайного распределения. Более мощным (но и более сложным в изучении и использовании) является математический пакет MathCAD.

Функциональная система интегрированного пакета программ состоит не из модулей (как в ППП), а из ППП.

Пример. Наиболее распространенный интегрированный пакет прикладных программ – MS Office (пакет автоматизации работы в офисе). В его ядро входят следующие пакеты: Word – текстовый редактор, Excel – электронная таблица, Access – СУБД, PowerPoint – система презентации и др.

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

Пример. К такому классу ПО можно отнести программную систему управления кораблем "Буран".

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

Системы программирования – это комплексы программ и прочих средств, предназначенных для разработки и эксплуатации программ на конкретном языке программирования для конкретной архитектуры ПК (платформы).

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

Язык программирования – это искусственный язык, с помощью которого записывается алгоритм решения задачи в виде, понятном ПК.

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

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

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

Рис. 6.2. Схема процесса создания загрузочного модуля программы

Различают следующие виды трансляторов: интерпретатор, компилятор.

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

Из универсальных языков программирования сегодня наиболее популярны следующие: Бейсик (Basic), Паскаль (Pascal), Си++ (C++), Ява (Java).

Для каждого из этих языков программирования сегодня имеется немало систем программирования, выпускаемых различными фирмами и ориентированных на различные модели ПК и операционные системы. Наиболее популярны следующие визуальные среды быстрого проектирования программ для Windows: Microsoft Visual Basic; Borland Delphi; Borland C++Builder; Microsoft Visual Studio (Visual Basic.net, C++, C#, J#).

Современные системы программирования позволяют создавать программы, вызываемые при просмотре Web-страниц в глобальной электронной сети Интернет.

Особым классом систем программирования являются системы для создания приложений типа клиент-сервер. Эти системы позволяют быстро создавать информационные системы для подразделений и даже крупных предприятий. В них содержатся средства для создания пользовательского интерфейса, описания процедур обработки данных, заготовки для выполнения типовых действий по обработке данных и т.д. Эти системы, как правило, позволяют работать с самыми различными СУБД – Oracle, Sybase, Microsoft SQL Server и др. Среди наиболее популярных систем такого рода можно назвать PowerBuilder фирмы Sybase, Delphi фирмы Borland, Visual Basic фирмы Microsoft. Разумеется, средства для создания приложений типа клиент-сервер имеются и в составе СУБД типа клиент-сервер (Oracle, Sybase и др.), но они ориентированы только на данную СУБД.

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

Компиляторы

Трансляторы

Ассемблеры

Интерпретаторы

Компоновщики

Отладчики

Средства автоматизированного тестирования программ

Генераторы документации

Комплект средств разработки (SDK)

Системы управления версиями

Системы программирования и интегрированные среды разработки программ

Системы автоматизации программирования (CASE)

Компилятор – это программное средство для перевода программ, написанных на каком-либо языке программирования, в программы, представленные в двоичных машинных кодах. Компиляторы делятся на три вида – трансляторы, ассемблеры и интерпретаторы.

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

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

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

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

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

Генератор документации – программа или пакет программ, позволяющая получать документацию, предназначенную для программистов (документация на API) и/или для конечных пользователей системы, по особым образом комментированному исходному коду и, в некоторых случаях, по исполняемым модулям (полученным на выходе компилятора). Обычно, генератор анализирует исходный код программы, выделяя синтаксические конструкции, соответствующие значимым объектам программы (типам, классам и их членам/свойствам/методам, процедурам/функциям и т. п.). В ходе анализа также используется метаинформация об объектах программы, представленная в виде документирующих комментариев . На основе всей собранной информации формируется готовая документация, как правило, в одном из общепринятых форматов – HTML, HTMLHelp, PDF, RTF и других.

Комплект средств разработки (SDK, Software Development Kit ) или «devkit» – набор программ и библиотек подпрограмм, позволяющий специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, видеоигровых консолей, операционных систем и прочих платформ. Программист, как правило, получает SDK непосредственно от разработчика целевой технологии или системы. Часто SDK распространяется через Интернет. Многие SDK распространяются бесплатно для того, чтобы поощрить разработчиков использовать данную технологию или платформу.

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

Интегрированная среда разработки (ИСР) (Integrated development environment, IDE ) – система программных средств, используемая для разработки программного обеспечения. Обычно среда разработки включает в себя текстовый редактор, компилятор и/или интерпретатор, средства автоматизации сборки и отладчик. Иногда также содержит средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов , инспектор объектов и диаграмму иерархии классов - для использования при объектно-ориентированной разработке ПО. Хотя и существуют среды разработки, предназначенные для нескольких языков - такие как Eclipse, NetBeans, Embarcadero RAD Studio или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования - как например, Visual Basic, Delphi, Dev-C++. Частный случай ИСР - среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы. Иногда ИСР называют «система программирования» , хотя в большинстве случаях ИСР охватывает расширенный спектр функций и возможностей.

Системы автоматизации программирования (Computer-Aided System Engineering , CASE ) – программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки, кодирования, отладки и сопровождения сложных программных систем. Основное достоинство CASE-технологии – это поддержка коллективной работы над проектом за счет возможности работы в локальной и глобальной сети разработчиков, экспорта(импорта) любых фрагментов проекта, организованного управления программами. Как правило, CASE-системы поддерживают автоматическую кодогенерацию программ – создание каркаса программой системы и создание полного продукта с системной документацией.

Прикладное программное обеспечение

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

Проблемно-ориентированные программы

Системы автоматизированного проектирования(САПР)

ПО для автоматизированных систем управления

Программы общего назначения

Офисные системы

Интеллектуальные системы

Программные системы мультимедиа

Настольные издательские системы

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

Программы бухгалтерского учета;

Программы финансовой деятельности;

Программы управления персоналом;

Программы управления предприятием;

Банковские информационные и автоматизированные системы;

Автоматизированные рабочие места на предприятии;

Системы автоматизированного проектирования (CAD System - Computer Aided Design System ) предназначены для поддержки работы конструкторов, технологов, электриков и электронщиков, архитекторов и других специалистов, связанных с разработкой чертежей, схем, моделей, графическим моделированием, конструированием. Системы такого класса очень требовательны к аппаратному обеспечению ЭВМ, быстродействию, памяти. Существенно наличие библиотек встроенных функций, объектов, интерфейсов с графическими системами и базами данных.

В САПР принято выделять семь видов обеспечения:

Техническое (ТО), включающее различные аппаратные средства (ЭВМ, периферийные устройства, сетевое коммутационное оборудование, линии связи, измерительные средства);

Математическое (МО), объединяющее математические методы, модели и алгоритмы для выполнения проектирования;

Программное (ПО), представляемое компьютерными программами САПР;

Информационное (ИО), состоящее из баз данных (БД), систем управления базами данных (СУБД), а также других данных, используемых при проектировании. Вся совокупность используемых при проектировании данных называется информационным фондом САПР, а БД вместе с СУБД носит название банка данных (БнД);

Лингвистическое (ЛО), выражаемое языками общения между проектировщиками и ЭВМ, языками программирования и языками обмена данными между техническими средствами САПР;

Методическое (МетО), включающее различные методики проектирования, иногда к МетО относят также математическое обеспечение;

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

По области применения можно выделить следующие группы САПР:

САПР для применения в отраслях общего машиностроения. Их часто называют машиностроительными САПР или MCAD (Mechanical CAD) системами;

САПР для радиоэлектроники. Их названия - ECAD (Electronic CAD) или EDA (Electronic Design Automation) системы.

САПР в области архитектуры и строительства.

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

Поцелевому назначению различают САПР или подсистемы САПР, обеспечивающие разные аспекты проектирования. Так, в составе MCAD появляются CAE/CAD/CAM системы:

САПР функционального проектирования, иначе САПР-Ф или CAE (Computer Aided Engineering) системы.

Конструкторские САПР общего машиностроения - САПР-К, часто называемые просто CAD системами;

Технологические САПР общего машиностроения - САПР-Т, иначе называемые автоматизированными системами технологической подготовки производства АСТПП или системами CAМ (Computer Aided Manufacturing).

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

Наиболее всего известны следующие классы АСУ:

Автоматизированная система управления технологическим процессом (АСУ ТП) - решает задачи оперативного управления и контроля техническими объектами в промышленности, энергетике, на транспорте;

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

Автоматизированная система управления производством (АСУ П) – решает задачи организации производства, включая основные производственные процессы, входящую и исходящую логистику. Осуществляет краткосрочное планирование выпуска с учётом производственных мощностей, анализ качества продукции, моделирование производственного процесса. Для решения этих задач применяются MIS и MES-системы, а также LIMS-системы.

Автоматизированная система управления предприятием (АСУП) - для решения этих задач применяются MRP,MRP II и ERP-системы. Например, если предприятием является высшее учебное заведение, имеет место АСУ ВУЗ.

В качестве примера наиболее известных АСУ можно выделить:

Автоматизированная система управления дорожным движением или АСУД - предназначена для управления транспортных средств и пешеходных потоков на дорожной сети города или автомагистрали;

Автоматизированная система управления уличным освещением («АСУ УО») - предназначена для организации автоматизации централизованного управления уличным освещением;

«Автоматизированная система управления» для гостиниц;

Автоматизированная система контроля проезда (АСКП) в общественном транспорте г.Москвы и др.

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

К группе программ общего назначения можно отнести:

Системы управления базами данных (СУБД)

Серверы БД

Генераторы отчетов

Текстовые процессоры

Табличные процессоры

Средства презентационной графики

Интегрированные пакеты

Методо-ориентированные программы

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

Визуализация схем баз данных;

Автоматическая поддержка целостности БД при различных видах обработки (включение, удаление, модификация);

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

Шаблоны и прототипы структур БД, отчетов форм и т.д.

Серверы БД – это ПО, предназначенное для создания и использования при работе в сети интегрированных БД в архитектуре клиент-сервер.

Многопользовательские СУБД в сетевом варианте обработки информации хранят данные на файл-сервере, специально выделенном компьютере, но сама обработки ведется на рабочих станциях.

Общим для различных видов БД является использование реляционного языка SQL (Structured Query Language) для реализации запросов к данным.

Генераторы отчетов (серверы отчетов) обеспечивают реализацию запросов и формирование отчетов в печатном или экранном виде в условиях сети с архитектурой клиент-сервер. Сервер отчетов подключается к серверу БД, используя драйверы сервиса БД (Crystal Reports, Profit for windows).

Текстовые процессоры предназначены для работы с текстовыми документами. Развитием данного направления являются издательские системы Microsoft Word).

Табличные процессоры являются удобной средой для вычислений, которая содержит средства деловой графики, средства специализированной обработки (Microsoft Excel).

Средства презентационной графики – это специализированные программы, предназначенные для создания изображений и их показ на экране, подготовка слайд-фильмов, мультфильмов и их проектирования (Microsoft PowerPoint, Flash).

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

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

Методо-ориентированные ППП обеспечивают, независимо от предметной области и функции информационных систем, математические, статистические и другие методы решения задач. Наиболее распространены методы математического программирования, решения дифференциальных уравнений, имитационного моделирования, исследования операций (Storm, SYSTAT, SAS и др.)

Офисные ППП обеспечивают организационное управление деятельностью офиса.

В разряд офисных ППП входят:

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

Программы-переводчики, средства проверки орфографии, распознавание текста (Tiger – система распознавания русского языка, Stylus Lingvo Office, содержащий Fine Reader, Stylus for Windows – переводчик на указанный язык, корректор орфографии Lingvo Corrector и резидентный словарь Lingvo)

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

Браузеры, средства создания WWW-страниц

Средства электронной почты (Pegasys Mail)

Настольные издательские системы – это широкий класс ПО, который реализует основные компоненты издательской деятельности.

Данный класс ПО включает программы, обеспечивающие:

Форматирование и редактирование текстов

Автоматическую разбивку текста на страницы

Компьютерную верстку печатной страницы

Монтирование графики

Подготовку иллюстраций

Подготовку оригинал-макета

К настольным издательским системам относятся:

PhotoShop for Windows

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

Системы искусственного интеллекта:

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

Готовые экспертные системы для принятия решений в рамках определенных предметных областей

Системы анализа и распознавания речи, текста и т.п.

Под интеллектуальными системами (ИС) можно понимать автоматические и автоматизированные системы с элементами искусственного интеллекта (ИИ).

Основными направлениями ИИ являются:

Представление знаний и разработка систем, основанных на знаниях

Творчество и игры (шахматы, шашки, го)

Разработка естественно-языковых интерфейсов и машинный перевод текстов

Распознавание образов (каждому объекту ставится в соответствие матрица признаков, по которой проходит его распознание)

Новые архитектуры компонентов (нейрокомпьютеры)

Интеллектуальные роботы

Специальное ПО (языки Лисп, Пролог)

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

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

Модели представления знаний:

Продукционные модели

Семантические модели

Фреймовые модели

Формальные логические модели