Смекни!
smekni.com

История развития прикладного программного обеспечения (стр. 2 из 5)

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

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

Специализированные библиотеки ориентированы на решение от­дельных, порой достаточно узких, классов задач.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.2. СТРУКТУРА и ОСНОВНЫЕ КОМПОНЕНТЫ ППП

Несмотря на большое разнообразие конкретных пакетных разработок, можно выделить следующие основные компоненты ППП:

- входные языки;

- предметное обеспечение;

- системное обеспечение.

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