ППП — совокупность программ, совместимых между собой и обеспечивающих решение задач из некоторой области знаний, называемой предметной областью пакета.
ППП могут быть программы общего назначения (ПОН) и программы функционального назначения (ПФН).
К ПОН можно отнести системы программирования на языках высокого уровня, СУБД, программы-редакторы текстов, изображений, издательские системы. Первые реализуют типовые режимы работы вычислительной системы.
К ПФН относят пакеты программ, предназначенные для решения задач в определенной предметной области. Деление это достаточно условно.
ППП — структурно сложные системы программ, предназначенные для решения задач определенного класса. Проблемно-ориентированные системы предназначены для автоматизированного создания ПО. На их основе создаются ППП для вычислительного процесса и ведения информационной базы.
Стандартная программа (прикладная программа) — общеупотребительная программа, построенная так, что ее можно включать в состав ППП для решения разных задач.
Библиотеки стандартных программ (БСП) формируются и содержатся на магнитных носителях (МН) под определенными именами (библиотеки статистической обработки данных, линейной алгебры, дифференцированного и интегрального исчисления, отыскания квадратного корня, нахождения экстремума). Например, SSP — пакет научных прикладных программ, реализующих методы численного анализа и статистики.
При выборе ППП обычно следует учитывать следующие факторы:
1.Состав функций управления, реализуемых с помощью ППП, можно ли его принять полностью или он должен быть доработан.
2.Возможность применения входных и выходных форм документов, регламентированных ППП.
3.Наличие исходных данных, регламентированных в ППП, возможность и трудоемкость их получения.
4.Возможность адаптации ППП и периодичность обработки данных пользователей.
5.Соответствие ППП необходимой структурной перестройке объекта управления и степени оперативности реорганизации базы данных.
6.Надежность ППП с точки зрения защиты данных, наличие средств обнаружения и локализации ошибок.
7.Наличие в пакете средств развития и его совершенствования.
8.Минимизацию или максимизацию конфигураций ЭВМ и периферийных устройств, которые предусматривает ППП.
9.Возможность использования различных носителей для формирования и хранения массивов.
10.Затраты на адаптацию ППП к другой конфигурации технических средств.
11.ОС для функционирования ППП.
12.Язык и транслятор, на котором написан ППП. Наличие необходимого транслятора у пользователя.
13.Состав стандартных вспомогательных программ, необходимых для применения пакета.
14.Наличие и комплектность документации для пользователя в соответствии с существующими нормативно-техническими документами на ППП.
15.Наличие документов по описанию применения ППП и обучению пользователей.
16.Количество документации и полнота излагаемых вопросов с точки зрения привязки ППП к условиям пользователя.
Часто ПО АС предназначено для решения задач управления, учета, отчетности, планирования, управления производством, распределением ресурсов, кадрового учета, бухгалтерской финансовой деятельности и т. д. ППП получили широкое распространения как инструмент автоматизации проектирования АСУ, создания САПР АСУ (систем автоматизирования проектирования АСУ) проблемно-ориентированных систем. Для этой цели разработано большое количество общесистемных и функциональных ППП.
Ниже приведены примеры ППП.
АРИУС — реализует функции архитектурного проектирования АСУ;
ISDOS, ADS.TAG — предназначены для формализации и автоматизации анализа системы;
СОД, ТИС, ТЕКОД, ИНЕС — средства проектирования алгоритмов;
СУБД — Clipper, Oracle и другие;
Редакторы текстов;
ППП реализация диалогов.
Следует обратить внимание на сетевые приложения. Это могут быть сетевые базы данных, почтовые системы, средства архивирования данных, системы автоматизации коллективной работы и т. д.
Таким образом, ПО можно разделить на внутреннее, обеспечивающее нормальную работу ЭВМ, и внешнее, позволяющее потребителю решать на ЭВМ необходимые задачи ввода, обработки, анализа и вывода информации наиболее простым и удобным образом.
Внутренне ПО состоит из эксплуатационных (тестовых и диагностических) программ, проверяющих исправность оборудования ЭВМ, системы программирования и операционной системы (рис. 2.17).
Внешнее ПО состоит из программ типовых процессов обработки данных в АИС (ввода, контроля, сортировки, корректировки, дублирования, поиска и вывода информации), программ решения конкретных задач и диспетчерскую программу системы (см. рис. 2.17).
Внешнее ПО решает конкретные задачи АС в соответствии с иерархическими уровнями системы управления.
Первый уровень:
сбор данных о ходе производственного процесса от первичных датчиков и преобразователей и использование этих данных после обработки для прямого программного управления этими процессами.
Программы обеспечивают:
• опрос датчиков и преобразований по заданным алгоритмам;
• выработку управляющих воздействий на исполнителей: (устройства, персонал).
Второй уровень:
• выбор методов обработки результатов измерений и вычислений необходимых параметров.
Третий уровень: оптимизация производственного процесса и адаптивное управление.
Четвертый уровень (высший): информационное управление системы — административно-организационное управление.
Решаемые задачи планируются и управляются программами, написанными на основе метода исследования операций.
Для успешной реализации проекта должны быть построены полные и непротиворечивые модели архитектуры ПО, где отражается иерархия подсистем и взаимодействие всех элементов системы. Наиболее верно структуру сложных систем отражает блочно-иерархический подход к их исследованию, а также созданию ПО. При таком подходе сначала создают части объектов (блоки, модули), а затем выстраивают из них сам объект.
Проблемы создания ПО в сложных системах породили потребность в программно-технологических средствах специального класса — CASE-средствах.
Термин CASE (Computer Aided Software Engineering — разработка ПО с использованием компьютерной поддержки) означал вначале автоматизацию разработки ПО, а теперь — процесс разработки сложных программных систем, т. е. программную инженерию.
Жизненный цикл ПО — одно из базовых понятий программной инженерии.
Жизненный цикл ПО (ЖЦ ПО) определяют как период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации. ЖЦ ПО регламентирован международным стандартом ISO/IEC 12207:1995 «Information Technology Software Life Cycle Processes>> (Процессы жизненного цикла программного обеспечения). В этом стандарте Международной организации по стандартизации ПО (или программный продукт) определяется как набор компьютерных программ, процедур и связанной с ними документации и данных. А процесс ЖЦ — совокупность взаимосвязанных действий, которые преобразуют входные данные в выходные.
В нашей стране создание ПО начиная с 1970-х гг. регламентировалось стандартами ГОСТ ЕСПД (Единой системы программной документации) серия ГОСТ 19.ххх. Многие из этих стандартов устарели. В настоящее время процессы создания АС, в состав которых входит и ПО, регламентированы стандартами «Информационная технология. Комплекс стандартов на автоматизированные системы» (ГОСТ 34.601-90, 34.602-89, 34.603-92 и другие). Однако и в этих стандартах процессы создания сложных систем отражены недостаточно, поэтому для каждого проекта такой системы часто создают комплексы нормативных и методических документов, регламентирующих процессы создания конкретного прикладного ПО. Целесообразно использовать международные стандарты. Так, в указанном выше стандарте ISO/IEC 12207:1995 все процессы ЖЦ ПО разделены на три группы: основные, вспомогательные и организационные.
Реальный процесс разработки ПО, как правило, выполняется по одной из трех схем (моделей): спиральной, с промежуточным контролем, каскадной (рис. 2.18).
На сегодняшний день в программной инженерии существует два подхода к разработке ПО систем:
Принципиальное различие между ними обусловлено разными способами декомпозиции систем. В первом случае выполняют разбиение задачи на подсистемы по функциям. Во втором структура системы описывается в терминах объектов и связей между ними, а поведение системы — в терминах обмена сообщениями между объектами.
Технология программирования — это совокупность методов и средств для разработки программного обеспечения. В технологии должна быть определена последовательность выполнения операций, условия, при которых выполняется каждая операция, описание самих операций, исходные данные, нормативные документы, в том числе стандарты, критерии и методы оценки, результаты.
Технология программирования развивалась наряду с развитием ЭВМ и языков программирования. Она прошла этап «стихийного» программирования, когда программы состояли из машинных кодов, или ассемблеров, и обрабатываемых данных.
Этап структурного программирования начался в 60-70 гг. прошлого столетия. В его основе лежит представление задачи в виде иерархии подзадач простейшей структуры (линейной последовательности, альтернативы, многократного повторения — цикла), реализуемых в виде небольших подпрограмм и модулей.
Модульное программирование — выделение групп подпрограмм, в которых используются одни и те же глобальные данные, в отдельно транслируемые модули (библиотеки подпрограмм). Связь между модулями осуществляется через интерфейс.
Структурный подход в сочетании с модульным программированием позволяет разрабатывать надежные программы размером не более ста тысяч операторов.
Процедурные языки структурного программирования: PL/1, ALGOL-68, Pascal, С.
Для сложного программного обеспечения на этапе 80-90 гг. прошлого столетия стало применяться объектно-ориентированное программирование, когда программа представлена в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию с наследова-нием свойств. Для обеспечения взаимодействия программных объектов используются сообщения. Механизмы наследования, полиформизма, композиции, наполнения позволяют строить сложные объекты из простых. Были созданы среды, поддерживающие визуальное программирование: Delphi, С++ Builder, Visual С++ и другие.
Этап компонентного подхода и CASE-технологии начался с середины 90-х гг. прошлого столетия. Компонентное программирование — создание ПО путем сборки объектов-компонентов (физически отдельно существующих частей ПО), взаимодействующих между собой через стандартизованные двоичные интерфейсы, в библиотеки или исполняемые файлы. Компонентный подход лежит в основе технологий СОМ и CORBA. Элемент такой технологии обладает свойствами, методами и событиями, его можно использовать для построения приложений.
COM (Component Object Model) — компонентная модель объекта. Эта технология является развитием технологии связывания и внедрения объектов — OLE, используемая для создания сложных и составных документов в приложениях, работающих под управлением ОС Windows. СОМ позволяет использовать функции одной части ПО другой частью.
На базе СОМ для разработки программного обеспечения были созданы компонентные технологии:
· OLE-automation — технология создания программируемых приложений (ее поддерживает MS Excel);
· ActiveX — технология создания ПО как на одном компьютере, так и в распределенной сети. Создана на базе OLE-automation. ActiveX применяется для создания ПО в Интернете и написания программ в среде Delphi, С++ Builder, Visual С++ и т. п.;
· MTS (Microsoft Transaction Server — сервер управления транзакциями) — технология стабильной и безопасной работы распределенных приложений, работающих с большими объемами передаваемых данных;
· MIDAS (Multitier Distributed Application Server — сервер многозвенных распределенных приложений) — технология организации доступа к данным разных компьютеров с учетом сбалансированности нагрузки сети.
Технология CORBA (Common Object Request Broker Architecture — общая архитектура с посредником обработки запросов объектов) используется для создания распределенных приложений. Может работать на всех основных аппаратных и программных платформах.
Для ускоренной разработки ПО применяют технологию RAD (Rapid Application Development). Она позволяет максимально быстро получить первые версии ПО. Эту технологию используют, в основном, для относительно небольших проектов, когда не требуется высокий уровень планирования и проектирования. Для больших систем, с большим количеством уникального кода эту технологию нельзя применять.
Языки программирования для создания ПО могут быть выбраны, исходя из конкретных условий. Это связано со знанием программистом определенного языка, с наличием у организации-разработчика лицензионной версии системы программирования, решаемых задач и т. д.
Современная тенденция заключается в стремлении приблизить язык программирования к человеческому языку, упростить его изучение и использование.
Существующие языки программирования можно подразделить на четыре уровня:
1.Машинные коды — внутренний язык команд конкретной ЭВМ. Он содержит полный перечень отдельных операций, которые может выполнять данная ЭВМ, и присвоенные этим операциям числовые коды;
2.Машинно-ориентированные автокоды, в которых некоторые простейшие и часто используемые последовательности машинных команд объединены в макрокоманды, что несколько укрупняет и упрощает процесс программирования. Для автокодов характерно применение мнемоники системы символической адресации. Языки этого уровня называют также ассемблерами.
Языки 1-го и 2-го уровней называются машинно-ориентированными языками или языками низкого уровня. Программирование задач на них занимает много времени, однако они лучше приспособлены для использования в ЭВМ.
3.Языки, предназначенные для решения определенного класса задач и не зависящие от конкретного типа ЭВМ. Эти языки называются проблемно-ориентированными.
Они содержат перечень типовых операций, используемых при решении данного класса задач и их условные наименования в терминах, привычных для специалистов в данной области. Например: Фортран и Алгол созданы для решения математических задач, Кобол — для решения экономических задач, Алгол-68 — для научных задач и моделирования, ПЛ Я (использует многие свойства языков Фортран, Алгол, Кобол, Паскаль) — для обработки больших массивов данных. Язык Simula используется для имитационного моделирования сложных систем, Basic — многоцелевой, символический, обучающий, Lisp — для работы со списочными структурами, Java, С и С++ — универсальные языки.
Для перевода этих языков на внутренний язык ЭВМ необходимо иметь специальные переводящие программы — трансляторы. Хотя время написания и отладки программы сокращается, но уменьшается эффективность использования характеристик конкретной ЭВМ при решении транслируемой программы.
4.Высший на сегодняшний день уровень языков — языки описания сценариев, по существу уже системы программирования. Например, система Delphi, в основе которой лежит язык Object Pascal. Такие языки предназначены для связи между собой различных приложений и компонентов, повышения производительности труда. Это уже целые системы программирования, которые позволяют осуществлять прямое общение человека с минимальной подготовкой с машиной. Языки описания сценариев в системе связи обеспечивают легкий доступ к множеству существующих объектов, позволяют манипулировать тысячью объектами, облегчая труд программиста.
В системах программирования (Delphi, C++Builder фирмы Borland, Visual Basic, Visual С++ фирмы Microsoft) и в средах программирования (Turbo Pascal и других) хорошо представлен визуальный интерфейс, позволяющий пользователям легко общаться с системой. Визуальная среда программирования включает средства разработки программ — компилятор, текстовый редактор, компоновщик, отладчик, справочную систему и библиотеку программ.
Использование машинных языков еще сохраняется в АСУ ТП, но при решении типовых задач обработки данных в АИС применяются языки высокого уровня и системы программирования. Автоматическое программирование — методы перевода с входного языка на машинный язык для работы по подготовке и программированию задач на ЭВМ — находит все большее распространение. Выполняется мультипрограммирование, которое обеспечивает возможность использования для решения разных задач одних и тех же ресурсов ЭВМ, а также параллельной работы нескольких программ.
На сегодняшний день универсальными языками программирования, для которых характерны многоплатформенность, реализация всех основных структурных алгоритмических конструкций (условия, циклы), большие накопленные библиотеки подпрограмм и классов являются Pascal, С, С++, Basic, Modula, Ada, Java и др. Объектное представление программы использовано в новых версиях универсальных языков программирования: Object Pascal, С++, Java и др.
Кроме универсальных выделяют группы специализированных языков:
· баз данных (например, FoxPro, Oracle);
· создания сетевых приложений (например, MySQL, SQL Server и др);
· создания систем искусственного интеллекта (например, MYZIN и др.);
· пользователя (профессиональные среды пользователя). Для эффективного применения ПО необходимо разрабатывать грамотную, понятную пользователям программную документацию: руководство программиста, руководство пользователя, руководство системного программиста, пояснительные записки и т. д. Правила составления документов приведены в указанных выше стандартах.
Техническое обеспечение АС — совокупность средств реализации управляющих воздействий, средств получения, ввода, подготовки, преобразования, обработки, хранения, регистрации, вывода, отображения, использования и передачи информации и эксплуатационной документации (ГОСТ 2.601).
Состав КТС — это номенклатура комплекса технических средств.
1)В состав комплекса технических средств АИС входят:
2)средства подготовки и регистрации информации (СПР);
3)средства сбора и передачи информации (ССП);
4)средства хранения и обработки информации (СХО);
5)средства вывода и воспроизведения информации (СВВ).
Структура КТС - пространственное размещение ТС и система информационной связи между ТС и персоналом. В соответствии с ГОСТ 34.201-89 должна быть разработана структурная схема комплекса ТС АИС, составлен перечень и дано описание технических средств, составлена ведомость и спецификация оборудования и материалов, схема соединения внешних проводок, таблица соединений и подключений оборудования. Должна быть составлена Инструкции по эксплуатации КТС.
Кроме КТС к техническому обеспечению (ТО) (рис. 2.19) относятся:
ММ — методические материалы, включающие: М — методику выбора КТС;
ТПР — библиотеки типовых программных решений для функционирования КТС;
МО — методику оценки показаний качества функционирования КТС;
П — персонал по разработке, внедрению и эксплуатации ТС, включающий:
ПВТ — персонал по обслуживанию вычислительной техники; ППС — персонал по периферийным средствам; ПСТ — персонал по системам телеобработки данных; ПСО - персонал по средствам оргтехники; ОП — обслуживающий персонал.
КТС является одной из основных составных частей АИС, ее материально-технической базой, на которой реализуются все задачи системы. С помощью ТС реализуются функции автоматизированного сбора информации от первоисточников, ее анализ и представление, хранение, обработка, отображение, передача.
Для осуществления основных функций технические средства должны отвечать следующим требованиям:
· быть информационно совместимыми между собой и обслуживающим персоналом, что обеспечивается совпадением форм представления информации, видов машинных носителей, языков, кодов, вводом данных в ТС;
· структура КТС должна соответствовать структуре управления объектом, обеспечивая автоматизированное управление выполняемых функций, в том числе функций контроля;
· для обеспечения быстрого решение задач ТС должны быть качественной конструкции, современного и удобного дизайна, иметь дружественный интерфейс для работы пользователя;
· должен соблюдаться принцип экономичности выбора и использования ТС, т. е. минимум затрат на создание (приобретение) технических средств, их эксплуатацию и используемых для размещения площадей.
Пример ТС для системы дорожного движения приведен в РД 50-34.698-90 [1].
В описании КТС приводятся:
1)общие положения;
2)структура КТС (схема);
3)средства вычислительной техники;
4)аппаратура передачи данных;
5)план расположения;
6)необходимое программное обеспечение.
В [1] для автоматизированного производства выделяют ТС пяти уровней:
0 — устройства с числовым программным управлением (УЧПУ), локальные системы управления (ЛСУ), программируемые контроллеры (ПК). На этом уровне обеспечивается локальное управление в реальном времени;
1 — АСУ ГПМ (гибкий производственный модуль), работа в реальном времени группы ТС;
4 — АСУП, АСНИ, САПР — связь между ними обеспечивает вычислительная сеть.
Например, система «Экспресс», предназначенная для автоматизации обслуживания пассажиров в масштабе всей нашей страны, имеет следующий состав и структуру (рис. 2.20).
Управляет работой комплекса периферийных устройств АРМ устройство управления, построенное на базе микропроцессора. В АРМ в качестве устройств вывода служат:
· дисплей для визуального представления текстов оператора АРМ и ответов из ВЦ;
· билетопечатающее устройство;
· устройство вывода статистической и отчетной документации;
· светооптическое табло для вывода данных о наличии мест в поездах.
Некоторые АРМ взаимодействуют между собой в режиме локальной сети, передавая данные с дисплея на дисплей, с магнитного диска (МД) одного АРМ на МД другого.
Массивы справочных данных хранятся на гибких магнитных дисках. Создан мощный справочно-информационный фонд, создается банк данных, содержащий информацию о номерах пассажирских поездов со всевозможными характеристиками, тарифно-справочные данные, таблицы кодирования станций и поездов, перечень пунктов продажи билетов.