Файл: Программа, комплекс программ, программное средство, программное обеспечение, программный продукт. Концепция программного изделия непосредственная производительная сила,.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 300

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


удаленных серверов в адресном пространстве клиента создается proxy-объект - заместитель

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

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

операционной системы, передает вызов заглушке. Заглушка распаковывает задание и передает его

объекту СОМ. Результат возвращается клиенту в обратном порядке.

На базе технологии СОМ и ее распределенной версии DCOM были разработаны

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

OLE-automation или просто Automation (автоматизация) — технология создания

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

службам этих приложений. Вводит понятие диспинтерфейса (dispinterface) - специального

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

Microsoft Excel, предоставляя другим приложениям свои службы.

ActiveX - технология, построенная на базе OLE-automation, предназначена для создания

программного обеспечения как сосредоточенного на одном компьютере, так и распределенного в

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

элементов управления ActiveX. Полученные таким образом элементы управления можно

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

зависит от используемой операционной системы. Это позволяет применять элементы управления

ActiveX в клиентских частях приложений Интернет.

Основными преимуществами технологии ActiveX, обеспечивающими ей широкое

распространение, являются:

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

взаимодействия сервера и клиента берет на программное обеспечение СОМ, программирование

сетевых приложений становится похожим на программирование для отдельного компьютера;

• открытость и мобильность - спецификации технологии недавно были переданы в Open Group

как основа открытого стандарта;

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

например, Visual Basic, Visual C++, Borland Delphi, Borland C++ и любых средств разработки на

Java;


• большое количество уже существующих бесплатных программных элементов ActiveX (к

тому же, практически любой программный компонент OLE совместим с технологиями ActiveX и

может применяться без модификаций в сетевых приложениях);

• стандартность - технология ActiveX основана на широко используемых стандартах Internet

(TCP/IP, HTML, Java), с одной стороны, и стандартах, введенных в свое время Microsoft и

необходимых для сохранения совместимости (COM, OLE).

MTS (Microsoft Transaction Server - сервер управления транзакциями) технология,

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

объемах передаваемых данных.

MIDAS (Multitier Distributed Application Server - сервер многозвенных распределенных приложений) - технология, организующая доступ к данным разных компьютеров с учетом

балансировки нагрузки сети.

Все указанные технологии реализуют компонентный подход, заложенный в СОМ. Так, с точки зрения СОМ элемент управления ActiveX - внутренний сервер, поддерживающий технологию OLE-automation. Для программиста же элемент ActiveX - «черный ящик», обладающий свойствами, методами и событиями, который можно использовать как строительный блок при создании приложений.

Технология CORBA, разработанная группой компаний ОМС (Object Management Group -

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

СОМ, на базе объектов и интерфейсов CORBA. Программное ядро CORBA реализовано для всех

основных аппаратных и программных платформ и потому эту технологию можно использовать

для создания распределенного программного обеспечения в гетерогенной (разнородной)

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

CORBA осуществляется с помощью специального посредника, названного VisiBroker, и другого

специализированного программного обеспечения.

Отличительной особенностью современного этапа развития технологии программирования,

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

разработки и сопровождения программного обеспечения, которые были названы CASE-

технологиями (Computer-Aided Software/System Engineering - разработка программного

обеспечения/программных систем с использованием компьютерной поддержки). Без средств

автоматизации разработка достаточно сложного программного обеспечения на настоящий момент

становится трудно осуществимой: память человека уже не в состоянии фиксировать все детали,



которые необходимо учитывать при разработке программного обеспечения. На сегодня

существуют CASE-технологии, поддерживающие как структурный, так и объектный (в том числе

и компонентный) подходы к программированию.

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

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

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


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

Большинство современных программных систем объективно очень сложны. Эта сложность

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

решаемых ими задач.

Пока вычислительных установок было мало, и их возможности были ограничены, ЭВМ

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

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

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

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

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

освоенных областей усложняются уже сложившиеся постановки задач.

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

• сложность формального определения требований к программным системам;

• отсутствие удовлетворительных средств описания поведения дискретных систем с большим

числом состояний при недетерминированной последовательности входных воздействий;

• коллективная разработка;

• необходимость увеличения степени повторяемости кодов.

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

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


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

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

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

нужном ракурсе.

Отсутствие удовлетворительных средств формального описания поведения дискретных

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

уровня. Это приводит к ранней детализации операций в процессе создания программного

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

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

описывать поведение сложных дискретных систем на более высоком уровне, чем универсальный

язык программирования, не существует.

Коллективная разработка. Из-за больших объемов проектов разработка программного

обеспечения ведется коллективом специалистов. Работая в коллективе, отдельные специалисты

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

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

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

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

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

программной системы.



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


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

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

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

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

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